procedure TForm1.FormShow(Sender: TObject);
var EF,AF:TEXTFILE;
s:
String;
Options:TkbmMemTableSaveFlags;
begin
(***************************************************************************)
AssignFile(EF,'
C:\WORK\XXDAT012005.TXT');
//Deine Eingabedatei
reset(EF);
Assignfile(AF,'
C:\WORK\XX_R1.2005.TXT');
//Kontrolldatei (ist nicht noetig bei Dir) erzeugt die Datei im CSV-Format
rewrite(AF);
//Datei Neuerstellen
Writeln(AF,'
PLZ;Ort;bei');
//Header fuer CSV-Kontrolldatei schreiben
Screen.cursor:=crhourglass;
//Cursor als Sanduhr..damit man was sieht *g*
kbmMemTable1.Close;
kbmMemTable1.FieldDefs.Clear;
//We dont need this line, but it does not hurt either.
kbmMemTable1.FieldDefs.Add('
PLZ', FtString, 5, False);
kbmMemTable1.FieldDefs.Add('
ORT',FtString, 30, False);
kbmMemTable1.FieldDefs.Add('
BEI', FtString, 30, False);
with kbmMemTable1.IndexDefs
do
begin
Clear;
Add('
Index1','
PLZ',[]);
//Indizies erstellen ..bei Dir evtl die VNR...Index2 bei Dir nicht noetig(?)
Add('
Index2','
ORT',[]);
end;
kbmMemTable1.CreateTable;
//Tabelle erzeugen
kbmMemTable1.active:=true;
While Not EOF(EF)
do
begin
s:='
';
Read(ef,s);readln(ef);
With kbmMemTable1
do
begin
Append;
//Datensatz anhaengen
Application.Processmessages;
FieldByname('
PLZ').asstring:=OEM_Ansi(TrimRight(Copy(s,18,5)));
FieldByname('
ORT').asstring:=OEM_Ansi(TrimRight(Copy(s,106,23)));
FieldByname('
Bei').asstring:=OEM_Ansi(TrimRight(Copy(s,75,29)));
Post;
//Datensatz in Datenbank speichern
Writeln(AF,OEM_Ansi(Copy(s,18,5))+'
;'+OEM_Ansi(Copy(s,106,23))+'
;'+OEM_Ansi(Copy(s,75,29)));
//Ausgabe in Kontrolldatei
end;
end;
Closefile(EF);
CloseFile(AF);
Screen.cursor:=crdefault;
//Standardcursor setzen
//Datei als DB speichern
Options:=[mtfSaveData, mtfSaveCalculated, mtfSaveBlobs, mtfSaveDef];
Options:=Options+[mtfSaveIndexDef];
Options:=Options+[mtfSaveDeltas];
KbmMemTable1.SaveToBinaryFile('
C:\WORK\XX2005_1.dat',options);
Showmessage('
save mem1');
End;