You are not logged in.

  • Login

1

Monday, March 8th 2010, 3:54pm

Umlaute ersetzen

Hallo zusammen,

ich habe folgendes Problem:
Ich soll ein Programm schreiben, dass eine Textdatei öffnet und alle "ä" durch "ae" und "ü" durch "ue" und "ö" durch "oe" und "ß" durch "ss" ersetzt. Das Resultat soll ich einer anderen Datei gespeichert werden.

Ich habe nun dies geschrieben:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub Sonderzeichen_ersetzen()

Dim DNameget As String
Dim DNameput As String
Dim Pos As Integer
Dim Zeichen As String * 1
Dim Zeichenneu As String * 2

DNameget = Application.GetOpenFilename
DNameput = Application.GetSaveAsFilename

Open DNameget For Random As #1 Len = 1
Open DNameput For Random As #2 Len = 2

Pos = 1

Do
    Get #1, Pos, Zeichen
    Zeichenneu = Zeichen
    If Zeichen = "ä" Then Zeichenneu = "ae"
    If Zeichen = "ö" Then Zeichenneu = "eo"
    If Zeichen = "ü" Then Zeichenneu = "ue"
    If Zeichen = "ß" Then Zeichenneu = "ss"
    If Zeichen = "Ä" Then Zeichenneu = "Ae"
    If Zeichen = "Ö" Then Zeichenneu = "Oe"
    If Zeichen = "Ü" Then Zeichenneu = "Ue"

    Put #2, Pos, Zeichenneu

Loop Until EOF(1)

Close #1
Close #2

End Sub

Das Problem ist nun, dass auch alle anderen Buchstabe nun 2-stellig werden. Das heißt ein Leerzeichen wird eingefügt.
Ich weiß, dass es auch viele andere Möglichkeiten gibt, die Aufgabenstellung zu lösen. Aber das Programm sollte schon so in der Art aufgebaut sein.
Kann mir da vielleicht jemand helfen?

Danke schön schonmal!

2

Thursday, March 11th 2010, 1:46pm

Hallo


Wir müssen hier mal ComboBox einfügen, wo man auswählen kann, obs VB oder VB.NET ist...

welche Version verwendest du denn?

in VB.NET gibts bei String Datentyp ganz schöne Funktion Replace...

falls du noch mit älteren Versionen unterwegs bist, würde ich vorschlagen, dass du erstmal den kompletten Text in eine String Variable einliest, es dann mit iner For schleife durchläufst und am ende wieder in die Datei speicherst.

Verbraucht mehr speicher, aber ehrlich gesagt habei ch kaum erfahrung in normalen Vb... nur VB.NET

mfG, Niko

Social bookmarks