Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
Delphi 11 Alexandria
|
AW: CSV-Datei mit /sb
25. Sep 2018, 20:26
OK, habe da mal genauer mit einem Hex-Editor reingesehen. Nach /sb folgt "0A" (oder asci #10), was ja einen zeilenvorschub repräsentiert.
Die Stringlist macht nach dem einlesen (Stringlist.loadfromfile) aber da ein #13#10 draus.
/sb könnte ja für "soft break" stehen oder so.
Ist mir jedenfalls noch nicht untergekommen.
Mein Problem kann ich erst mal lösen, indem ich nach dem Einlesen der Datei z.B.
stringlist.text := ReplaceStr (stringlist.text, '/sb' + #13#10, ' ');
aufrufe, um die richtige Zeilenzahl zu bekommen.
(tatsächlich werde ich es nicht durch ein Leerzeichen ersetzen, sondern durch ein anderes Sonderzeichen, dass in meinen mehrzeiligen Feldern (Memo) den Zeilenumbruch repräsentiert).
Interessant finde ich aber, dass Windows Notepad so eine Zeile als eine Zeile einliest...
Nachtrag: Windows-Notepad ignoriert einfach #10 Zeichen und macht keinen neue Zeile auf, auch ohne /sb
Soweit ich das jetzt raus gefunden habe, wird in diesem Feld, das mehrzeiligen Text repräsentiert, das erste #10-Zeichen mit /sb eingeleitet, es können aber noch weitere #10 Zeichen (ohne /sb Einleitung) innerhalb des Textes für dieses Feld vorkommen.
Kann das irgendein Standard sein? Sehe ich jedenfalls zum ersten mal.
Suchen und ersetzen reicht da nicht, da muss ich das wohl als Memorystream einlesen und jedes einzelne #10 Zeichen, das nicht im Verbund mit #13#10 steht, eliminieren (bzw. durch mein eigenes Kennzeichen ersetzen)....
Geändert von Harry Stahl (25. Sep 2018 um 20:45 Uhr)
|