Hallo Leute, ich krieg noch die krise mit dem einlesen meiner datei
also mit folgender funktion liest er mir ca 1600 zeilen ein und meldet dann
Listenindex überschreitet maximum(10). so auf anhieb würd ich sagen er hat zuviele "" und
bringt mir zuviel indizes bin aber die datei ab zeile 1585 durchgegangen und mir is nix auser
gewöhnliches aufgefallen. Seltsam ist, wenn ich ca. 150 zeilen (zwischen 1530 und 1698) rauslösch dann lauft er ganz durch
die ganze datei hat 2398 zeilen. an was könnte das sonst noch liegen?
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
detailSL.QuoteChar := '
"';
// Quoting Zeichen.
masterSL.LoadFromFile('
C:\KUNDENSTAMM.txt');
for ndx := 0
to Pred (mastersl.Count)
do
begin
detailsl.Clear;
detailsl.DelimitedText := '
"' + StringReplace(mastersl.Strings[ndx],'
;','
";"',[rfReplaceAll]);
//detailsl.savetofile('c:\test.txt');
with IBQuery1
do
begin
Close;
SQL.Text := '
INSERT INTO KUNDENSTAMM(KDNR, ANREDE, VORNAME, NACHNAME, ZUSATZ, STRASSE,ORTSTEIL,PLZ,ORT,TELEFON,TELEFAX) VALUES (:wert1,:wert2,:wert3,:wert4,:wert5,:wert6,:wert7,:wert8,:wert9,:wert10,:wert11)';
ParamCheck := True;
ParamByName('
wert1').AsInteger := strtoint(detailsl.Strings[0]);
ParamByName('
wert2').AsString := detailsl.Strings[1];
ParamByName('
wert3').AsString := detailsl.Strings[2];
ParamByName('
wert4').AsString := detailsl.Strings[3];
ParamByName('
wert5').AsString := detailsl.Strings[4];
ParamByName('
wert6').AsString := detailsl.Strings[5];
ParamByName('
wert7').AsString := detailsl.Strings[6];
ParamByName('
wert8').AsString := detailsl.Strings[7];
ParamByName('
wert9').AsString := detailsl.Strings[8];
ParamByName('
wert10').AsString := detailsl.Strings[9];
ParamByName('
wert11').AsString := detailsl.Strings[10];
ExecSQL;
end;
IBTransaction1.Commit;
end;
finally
FreeAndNil (mastersl);
FreeAndNil (detailsl);
end;
end;