Wie kann ich eine Textdatei im Zeichssatz Windows-1251 (Kyrillisch) lesen/schreiben

  • Hallo :)

    ich versuche eine Textdatei in eine XML zu konvertieren. Die Textdatei ist mit dem Charset Windows-1251 gespeichert und enthält abwechselnd Deutsche und Russische Texte jeweils zeilenweise getrennt.

    Beispieltext (Auszug)
    --
    " OK "
    " Äà "
    " OK "
    " Äà "
    " OK "
    " Äà "
    ...
    ...
    --

    Zeilenweise einlesen/verarbeiten ist einfach, aber die Zeichensatzkodierung bringt mich um den Verstand. In der Dokumentation habe ich bisher nur einen Hinweis auf das Öffnen von UTF-8 Texten gefunden.

    Ziel ist es später, die Textdatei zu lesen und zwei XML (UTF-8) Dateien (Deutsch/Russich) zu schreiben, diese werden dann in Übersetzertools weiterverwendet.

    Hier mein kleines Beispiel: ich versuche zum Test eine Textdatei
    zeilenweise zu lesen und die Texte in einer msgBox auszugeben damit ich
    sehe kann was es für Änderungen in der Darstellung gibt.

    Spoiler anzeigen


    $file = "RUSSISCH.WBU"
    $sFile = FileOpen($file)

    ; Prüfen ob Datei lesbar
    If $sFile = -1 Then
    MsgBox(0, "Fehler", "Die Datei " & $file & " wurde nicht gefunden")
    Exit
    EndIf

    Local $aFile = StringSplit(FileRead($sFile),@CRLF,3)

    For $i = 0 to Ubound($aFile)-1
    MsgBox(64,"Inhalt von Zeile "&$i+1,$aFile[$i])
    Next

    Hat mir jemand eine Idee wo ich was dazu finde, oder einen Tip wie ich es machen kann?

    Herzlichen Gruß aus Ludwigsburg
    Anton

    Einmal editiert, zuletzt von tapester (14. Juni 2010 um 09:05)

  • Hallo, Windows bringt eine FUnktion mit, um Codepages in Unicode-Text umzuwandlen. Damit hast du dann den gewünschten TExt und kannst einfach eine beliebig kodierte XML (z.B. UTF-8 mit FileOpen($sFile, 2+256) erstellen.

    [autoit]

    $sDecoded = _WinAPI_MultiByteToWideChar($sText, 1251, 0, 1)

    [/autoit]