Einzelnen Beitrag anzeigen

Hänsel

Registriert seit: 4. Okt 2018
7 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

csv-Datei einlesen

  Alt 10. Jun 2019, 15:17
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?
  Mit Zitat antworten Zitat