Wie kann ich in bei diesem Visual Basic Code einen Umlaut-Übersetzer einbauen?
Hier der Code:
Module Program
Sub Main()
Dim QuellDatei As String
Dim Zeile As Integer
Dim Inhalt As String
Dim Informationen() As String
Dim Fileexport() As String
Dim i As Integer
Dim Zieldatei As String
Zieldatei = "H:\Desktop\Programme\MSVS Projects\ASCII Converter\tmp\Exportiert.txt"
QuellDatei = "H:\Desktop\Programme\MSVS Projects\ASCII Converter\tmp\w0000020.e01"
FileOpen(1, QuellDatei, OpenMode.Input)
FileOpen(2, Zieldatei, OpenMode.Output)
Do While Not EOF(1)
Inhalt = LineInput(1)
Informationen = Split(Inhalt, ";")
If Informationen(0) = 500 Then
PrintLine(2, Informationen(0) & ";" & Informationen(3) & ";" & Informationen(8) & ";" & Informationen(9) & ";" & Informationen(10))
End If
Loop
FileClose(1)
FileClose(2)
End Sub
End Module
Der Code tut ein File auslesen von dort gewisse Daten (500) kopieren und in ein neues .txt File schreiben jedoch nimmt es die umlaute nicht mit.
2 Antworten
Die Methode die du verwendest ist veraltet und ich weiß mit Sicherheit, dass es am Encoding liegt. Verwende einen Streamreader, hier ein Beispiel aus dem Web:
Using sw As StreamWriter = New StreamWriter(fname, true, System.Text.Encoding.Unicode)
sw.Write(str)
sw.Close()
End Using
Google mal nach dem StreamWriter und der WriteLine Methode. Da ich dir das Beispiel bereits in Excel gezeigt habe dürfte es für dich nicht schwer sein es anzupassen.
Denk daran, dass der StreamReader und StreamWriter in System.IO und System.Text.Encoding enthalten sind.
Btw.
PrintLine(2, Informationen(0) & ";" & Informationen(3) & ";" & Informationen(8) & ";" & Informationen(9) & ";" & Informationen(10))
Kannst du dir sparen wenn du
PrintLine(2, Inhalt)
schreibst.
Nicht ganz da ich nur gewisse werte ausgeben will
👌 habs auch erst danach gesehen, dass du nur gewisse Werte willst. Wie bist du mit dem StreamReader und StreamWriter weitergkommen?
ah nein geht auch mit vb (hab falsch geschaut sry)
Inhalt = LineInput(1)
'Diese Zeile für all deine Fälle (Groß, KleinSchreibung) dazwischen setzen
Inhalt = Strings.Replace(Inhalt,"ue","ü",1,-1,vbTextCompare)
Danke