Unicode aus Datei lesen
Uli
Benutze das Forum bisher nur als Leser und habe schon viele brauchbare Tips gefunden.
Mit meinem heutigen Problem komme ich anscheinend aber lesend nicht weiter, daher nun mein erster Beitrag.
Ich möchte per VBA aus einer Datei bestimmte Unicode-Strings lesen und in eine Tabelle eintragen.
(Mein Editor zeigt an, die Datei sei UTF-8 kodiert. Um genau zu sein: es ist eine aus dem CAD System Solidworks erzeugte DXF-Datei).
In der Datei steht z.B. "номер станции:". Trage ich diesen kyrillischen Text in eine Zelle ein, so lese ich dort "Ð½Ð¾Ð¼ÐµÑ ÑÑанÑии:".
Den kompletten VBA-Code hier einzubinden wäre etwas unübersichtlich. Daher nachstehend nur die wesentlichen Elemente:
Dim objFso As Object
Dim objDxfName As Object
Dim dxfTxt as String
Set objFso = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Set objDxfName = objFso.OpenTextFile(dxfName, ForReading, TristateTrue)
' Eine Zeile lesen
dxfTxt = objDxfName.readline
Wenn ich den gelesenen Text noch per StrConv(dxftxt, vbFromUnicode) umwandle, erhalte ich chinesische Schriftzeichen.
Was mache ich falsch? Irgendwie sehe ich den Wald vor lauter Unicode-Bäumen nicht mehr. Für eure Hilfe wäre ich sehr dankbar.
PS: vielleicht noch ein paar weitere Infos zum DXF-Datei-Format, vielleicht kommt das ja auch jemandem bekannt vor:
Das Problem tritt erst auf, seit dem auf SolidWorks Version 2010 umgestellt wurde.
Die bisher verwendete Version 2008 hat die Unicodes als ANSI-Datei im Format \U+xxxx Zeichen für Zeichen ausgeschrieben. Die habe ich dann mit einer kleinen Funktion (per CharW) konvertiert - alles Bestens. Das neue System kann entweder Ansi-Dateien im Format \M+xxxxx oder wie oben angeführt UTF-8 kodierte Dateien schreiben. Mit dem Format \M+xxxxx komme ich gar nicht klar - weiss jemand was das eigentlich ist?