Hallo,
ich habe ein Problem mit der TStringList und DelimitedText.
Ich bekommen einen Text in Spalten, den ich einlesen muss. Er ist wie folgt aufgebaut:
"Spalte 1"~"Spalte 2"~"Spalte 3"
Dies kann ich mit der TStringList auch wunderbar zerlegen. Aber wenn in einer Spalte ein Text steht, der ein " enthält, kommt die TSTringList ins straucheln und zerlegt die Spalten falsch. Ein Beispiel, um es deutlich zu machen:
Delphi-Quellcode:
var ts : TStringList;
begin
ts := TStringList.Create;
try
ts.Delimiter := '~';
ts.DelimitedText := '"Spalte 1"~"Spalte 2"~"Spalte 3"';
showMessage(IntToStr(ts.Count)); {Ergibt 3, wie erwartet}
ts.DelimitedText := '"Spalte 1"~"Spalte 2"~"Spalte 3"Test""';
showMessage(IntToStr(ts.Count)); {Ergibt 4, sollte aber 3 ergeben}
finally
ts.Free;
end;
end;
Im zweiten Beispiel sieht man, dass die Spalte zu früh als "fertig" erkannt wurde. In ts.Strings[2] steht dann 'Spalte 3' und in ts.Strings[3] steht 'Test""'. Eigentlich sollte aber in ts.Strings[2] 'Spalte 3"Test"' stehen.
Wie bekomme ich das hin?
Danke!
Jens