Hai Michael80,
dafür brauchst Du zwei StringListen. Dann kannst Du mit der Eigenschaft
DelimitedText arbeiten.
In der ersten sind alle Zeilen aus deiner Datei. Der zweiten wird immer eine Zeile der ersten übergeben und endhält dann selber für jeden "Eintrag" eine Zeile. Mehr steht in der
OH.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
mastersl : TStringList;
detailsl : TStringList;
ndx : Integer;
// Laufvariable für Master
begin
mastersl := TStringList.Create;
// Master StringList
detailsl := TStringList.Create;
// Detail StringList
try
detailsl.Delimiter := '
;';
// Trennzeichen der Einträge pro Zeile
mastersl.LoadFromFile('
deinedatei.csv');
for ndx := 0
to Pred (mastersl.Count)
do
begin
detailsl.Clear;
detailsl.DelimitedText := mastersl.Strings[ndx];
with Query1
do
begin
Close;
SQL.Text := '
INSERT INTO TABLE(FELD1, FELD2, FELD3) VALUES (:wert1,:wert2,:wert3)';
ParamCheck := True;
ParamByName('
wert1').AsString := detailsl.Strings[0];
ParamByName('
wert2').AsString := detailsl.Strings[1];
ParamByName('
wert3').AsString := detailsl.Strings[2];
ExecSQL;
end;
end;
finally
FreeAndNil (mastersl);
FreeAndNil (detailsl);
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"