Hallo kann mir bei meinen Problem jemand helfen?
Ich habe zum Einlesen einer
csv-Dateien folgenden Code geschrieben:
procedure TForm1.Import1FromCSVfile(sFile: string);
var
tfDatei: TextFile;
sZInhalt,be: string;
slWerte: TStringList;
iZeile,zähler: Integer;
begin
Try
Try
AssignFile(tfDatei, sFile);
Reset(tfDatei);
iZeile:= 0;
while not EoF(tfDatei) do
begin
slWerte := TStringList.Create;
Readln(tfDatei,sZInhalt);
slWerte.Delimiter := ';';
slWerte.QuoteChar := '"';
slWerte.DelimitedText := sZInhalt;
Inc(iZeile); // erste Zeile ist der Kopf
tblImport.Open;
tblImport.Last;
tblImport.Append;
tblImport['OBJ'] :=Edit1.Text;
tblImport['Feld_01'] := slWerte.Strings[0];
tblImport['Feld_02'] := slWerte.Strings[1];
tblImport['Feld_03'] := slWerte.Strings[2];
tblImport['Feld_04'] := slWerte.Strings[3];
usw.
Es tritt folgendes Problem auf: Es werden alle Zeilen eingelesen.Aber wenn z.B. das erste Feld ein Text ist, welches aus zei Wörtern besteht, wird das erste Wort in die erste Spalte geschrieben und das zweite Wort (welches eigendlich in die erste Zeile hehöhrt) in die zweite Spalte geschrieben. Dies geschieht bei allen Texten welche ein Leerzeichen haben. Dadurch verschiebt sich die Einlesung unkontrolliert.
Was habe ich da falsch gemacht bzw. was fehlt noch?