Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unicode aus Datei lesen

Unicode aus Datei lesen
Uli
Hallo zusammen.
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?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unicode aus Datei lesen
19.01.2011 07:12:55
Uli
Hallo Anton,
vielen Dank für die schnelle Hilfe. Der Artikel sieht sehr vielversprechend aus. Werde es heute abend ausprobieren und melde mich dann wieder.
Gruß
Uli
AW: Unicode aus Datei lesen
19.01.2011 22:03:44
Uli
Hallo Anton,
hab's probiert. Funktioniert genau wie gewünscht.
Noch einmal vielen Dank.
Gruß
Uli
Anzeige
Danke für Feedback oT
20.01.2011 10:23:16
Anton
oT
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Unicode aus Datei in Excel einlesen und umwandeln


Schritt-für-Schritt-Anleitung

  1. VBA-Umgebung öffnen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle Einfügen > Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Dim objFso As Object
    Dim objDxfName As Object
    Dim dxfTxt As String
    Dim dxfName As String
    
    dxfName = "C:\Pfad\zu\deiner\datei.dxf" ' Ändere den Pfad zur DXF-Datei
    
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set objDxfName = objFso.OpenTextFile(dxfName, 1, False, -1) ' -1 für UTF-8
    
    ' Eine Zeile lesen
    dxfTxt = objDxfName.readline
    objDxfName.Close
    
    ' Unicode in Text umwandeln
    dxfTxt = StrConv(dxfTxt, vbUnicode)
    MsgBox dxfTxt ' Ausgabe des Textes
  4. Code anpassen: Ersetze C:\Pfad\zu\deiner\datei.dxf mit dem tatsächlichen Pfad deiner DXF-Datei.

  5. Code ausführen: Drücke F5, um den Code auszuführen. Der gelesene Unicode-Text wird in einer MessageBox angezeigt.


Häufige Fehler und Lösungen

  • Fehlerhafte Darstellung von Unicode: Wenn der Text nach dem Einlesen nicht korrekt angezeigt wird, stelle sicher, dass die Datei tatsächlich im UTF-8-Format gespeichert ist. Überprüfe den Dateityp und die Kodierung.

  • StrConv gibt falsche Zeichen aus: Wenn du StrConv(dxftxt, vbFromUnicode) verwendest und unverständliche Zeichen erhältst, versuche stattdessen StrConv(dxftxt, vbUnicode) zu verwenden, um sicherzustellen, dass du den Text korrekt umwandelst.


Alternative Methoden

Eine alternative Methode besteht darin, die Datei direkt in Excel zu importieren. Du kannst Daten > Aus Datei > Aus Text/CSV verwenden und die korrekte Kodierung beim Import auswählen. Dies könnte dir helfen, die Unicode-Strings direkt in eine Excel-Tabelle zu bringen, ohne VBA zu verwenden.


Praktische Beispiele

  • Kyrillische Zeichen: Wenn du kyrillische Zeichen wie "номер станции:" aus einer DXF-Datei lesen möchtest, verwende den obigen VBA-Code. Der Text sollte dann korrekt in Excel angezeigt werden.

  • CAD-Daten: Falls du CAD-Daten hast, die im DXF-Format vorliegen, kannst du die gleichen Schritte befolgen, um Unicode-Strings in Excel zu importieren.


Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um sicherzustellen, dass dein Skript robust ist und unerwartete Fehler angemessen behandelt werden.

  • Teste mit verschiedenen Dateiformaten: Wenn du häufig mit verschiedenen Unicode-Dateiformaten arbeitest, teste deinen Code mit verschiedenen Beispielen, um sicherzustellen, dass er auch mit anderen Kodierungen funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Excel-Version UTF-8 unterstützt?
Stelle sicher, dass du eine aktuelle Version von Excel verwendest, die UTF-8 unterstützt. In den meisten modernen Versionen (Excel 2010 und neuer) ist dies der Fall.

2. Was ist der Unterschied zwischen ANSI und UTF-8?
ANSI ist eine ältere Kodierung, die in der Regel nur eine begrenzte Anzahl von Zeichen unterstützt, während UTF-8 eine viel größere Zeichenmenge umfasst, darunter auch Zeichen aus verschiedenen Sprachen.

3. Wie kann ich Unicode-Strings in VBA einfacher verarbeiten?
Verwende die StrConv-Funktion in VBA, um zwischen verschiedenen Unicode-Formaten zu konvertieren. Achte darauf, die richtige Konvertierungsmethode auszuwählen, um die gewünschten Ergebnisse zu erzielen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige