Hallo Leute
Vorweg: "Double quotes as a string encapsulator is a feature of the
CSV specifications"
Ich will eine UTF-8 Textdate einladen und die "Felder" auslesen und in meine Tabelle schreiben (die
CSV Datei bekomme ich von einer anderen Software)
Struktur der CSV-Textdatei:
Kundennummer;Kundenname;Plz;Ort
Beispiel:
001;Hotel Huber;12345;Ort
002;Huber Hotel;12345;Ort
003;Hotel "Huber";12345;Ort
004;"Huber" Hotel;12345;Ort
Der Fehler kommt nun in Zeile 4 .. weil das " gleich nach dem ; kommt vermute ich.
Die
CSV-Datei kann ich nicht ändern - wie kann ich via Delphi das Problem mit dem führenden Doublequote lösen?
Wie ich es aktuell mache:
Delphi-Quellcode:
sl := TStringList.Create;
slRow := TStringList.Create;
slRow.StrictDelimiter := true;
slRow.Delimiter := ';';
try
sl.LoadFromFile(datenpfad + '\' + dateiname, TEncoding.UTF8);
for line := 0 to sl.Count-1 do
begin
slRow.DelimitedText := sl[line];
t0 := slRow[0];
t1 := slRow[1];
t2 := slRow[2];
t3 := slRow[3];
Importtabelle.Append;
Importtabelle.FieldByName('Datenquelle').AsInteger := 1;
Importtabelle.FieldByName('Kundennummer').AsString := t0;
Importtabelle.FieldByName('Kundenname').AsString := t1;
Importtabelle.FieldByName('Postleitzahl').AsString := t2;
Importtabelle.FieldByName('Ort').AsString := t3;
Importtabelle.post;
end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \