Hi, ihr LIeben,
ich habe ein vertracktes Problem, dass mich schier zur Verzweiflung treibt. Offensichtlich fehlt mir hier eine wichtige Information.
Zur Sache:
Ich habe eine List(of Structure), die ich in einer datagrid view darstelle. Hier der aktuelle Inhalt der Struktur. (s. Anhang 1)
Wir haben also fünf Zeilen mit je zwei Spalten. Ich möchte diese List (of Structure) in einem sequentiellen File speichern. Dazu trenne ich die Felder der Struktur mit einem FLDSEP Charakter und beende das letzte Feld in der Zeile mit einem RECSEP.
FLDSEP und RECSEP sind wie folgt definiert.
Das Ganze schreibe ich dann in einen sequentiellen File:
Soweit so gut.
Aber wenn ich den Ausgabefile im Notepad anzeige, dann erhalte ich ein "chinesisches'" Display (s. Anhang 2).
Na ja, da gibt es ja so Sachen wie die Byte Order Mask (BOM), wo solche Dinge festgeschrieben werden. Deshalb hab ich mir die Datei in meinem HexEditor angeschaut (s. Anhang 3).
Offensichtlich ist keine BOM vorhanden. Der FLDSEP ist wie kodiert als x'00 eingefügt worden. Der RECSEP x'FF ist allerding als x'C3BF gespeichert worden. Warum auch immer.
Und das scheint irgendwie ursächlich für dieses Problem zu sein. Denn wenn ich den RECSEP durch irgendein anderes Zeichen ersetze, etwa ';'c , dann verschwinden die "chinesischen" Schriftzeichen !
Ich habe vermutet, dass der Beginn der Daten "29." = x'32392E als BOM interpretiert wird. Aber das ist wohl nicht Fall. Das Problem bleibt bestehen, wenn ich ein anderes Datum nehme. Und im übrigen würde das ja auch nicht zu der Tatsache passen, dass die Sache funktioniert, wenn man nur einen anderen RECSEP verwendete.
WO um alles in der Welt "merkt" sich Windows, dass die Daten mit chinesichen Schriftzeichen dargestellt werden sollen ! Auch in den "properties" der Datei sehe ich nix. Ich bin ratlos !
Wohlgemerkt, ich kann das Problem durch Wahl eines anderen RECSEP umgehen. Aber wie immer, würde ich halt gern verstehen was da los ist !
Vielleicht kann mir jemand mit der üblichen Nachsicht weiter helfen ! Möglicherweise fehlt mir ja nur eine klitzekleine aber wichtige Information !
LG
Peter
ich habe ein vertracktes Problem, dass mich schier zur Verzweiflung treibt. Offensichtlich fehlt mir hier eine wichtige Information.
Zur Sache:
Ich habe eine List(of Structure), die ich in einer datagrid view darstelle. Hier der aktuelle Inhalt der Struktur. (s. Anhang 1)
Wir haben also fünf Zeilen mit je zwei Spalten. Ich möchte diese List (of Structure) in einem sequentiellen File speichern. Dazu trenne ich die Felder der Struktur mit einem FLDSEP Charakter und beende das letzte Feld in der Zeile mit einem RECSEP.
FLDSEP und RECSEP sind wie folgt definiert.
Das Ganze schreibe ich dann in einen sequentiellen File:
Soweit so gut.
Aber wenn ich den Ausgabefile im Notepad anzeige, dann erhalte ich ein "chinesisches'" Display (s. Anhang 2).
Na ja, da gibt es ja so Sachen wie die Byte Order Mask (BOM), wo solche Dinge festgeschrieben werden. Deshalb hab ich mir die Datei in meinem HexEditor angeschaut (s. Anhang 3).
Offensichtlich ist keine BOM vorhanden. Der FLDSEP ist wie kodiert als x'00 eingefügt worden. Der RECSEP x'FF ist allerding als x'C3BF gespeichert worden. Warum auch immer.
Und das scheint irgendwie ursächlich für dieses Problem zu sein. Denn wenn ich den RECSEP durch irgendein anderes Zeichen ersetze, etwa ';'c , dann verschwinden die "chinesischen" Schriftzeichen !
Ich habe vermutet, dass der Beginn der Daten "29." = x'32392E als BOM interpretiert wird. Aber das ist wohl nicht Fall. Das Problem bleibt bestehen, wenn ich ein anderes Datum nehme. Und im übrigen würde das ja auch nicht zu der Tatsache passen, dass die Sache funktioniert, wenn man nur einen anderen RECSEP verwendete.
WO um alles in der Welt "merkt" sich Windows, dass die Daten mit chinesichen Schriftzeichen dargestellt werden sollen ! Auch in den "properties" der Datei sehe ich nix. Ich bin ratlos !
Wohlgemerkt, ich kann das Problem durch Wahl eines anderen RECSEP umgehen. Aber wie immer, würde ich halt gern verstehen was da los ist !
Vielleicht kann mir jemand mit der üblichen Nachsicht weiter helfen ! Möglicherweise fehlt mir ja nur eine klitzekleine aber wichtige Information !
LG
Peter
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Peter329“ ()