Einzelnen Beitrag anzeigen

Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

TStringList und DelimitedText

  Alt 19. Mai 2009, 09:25
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
Jens
  Mit Zitat antworten Zitat