Hi,
versuche doch einfach erstmal die Daten aus der Textdatei in eine Datenbank einzulesen, z. B. JvMemoryData von den JediVCL.
Hier mal mein Beispiel des Einlesens einer vorher gespeicherten Inventur:
Delphi-Quellcode:
procedure blablupp;
var
F: TextFile;
zeile: string;
art, men, bez, ek, lag: string;
errorcount: integer;
k : array [1..6] of Integer;
Posi: integer;
lauf: integer;
dat : string;
begin
AssignFile(F, FileName);
Reset(F);
MemTbl.EmptyTable;
while not eof(f) do
begin
ReadLn(f, Zeile);
try
// Bestimmung der Trennzeichenpositionen
Posi:=1;
for Lauf := 1 to length(Zeile) do
begin
if (Zeile[Lauf] = #9) then
begin
K[Posi] := Lauf;
Inc(Posi);
end;
end;
K[6] := Length(Zeile)+1;
art := copy(Zeile, 1, K[1]-1);
men := copy(Zeile, K[1]+1, K[2]-K[1]-1);
bez := copy(Zeile, K[2]+1, K[3]-K[2]-1);
ek := copy(Zeile, K[3]+1, K[4]-K[3]-1);
dat := copy(Zeile, K[4]+1, K[5]-K[4]-1);
lag := copy(Zeile, K[5]+1, K[6]-K[5]-1);
MemTbl.Append;
MemTblArtikelnummer.AsString := art;
MemTblBezeichnung1.AsString := bez;
MemTblEinkaufspreis.AsString := ek;
MemTblMenge.AsString := men;
MemTblZaehldatum.AsString := dat;
MemTblLagerort.AsString := lag;
MemTbl.Post;
except
inc(errorcount);
MemTbl.Cancel;
end;
end;
CloseFile(f);
end;
Wenn Du anschließend die Daten in der Tabelle hast, kannst Du mit TDataSet-Funktionen Deine Auswertung weiterlaufen lassen.
So wird die Datei jedenfalls nur ein einziges Mal angerührt.
mfg
Michael