Moin zusammen!
Um eine Text-Datei von A nach B zu kopieren, und dabei u. U. den Inhalt zu manipulieren, verwende ich das folgende Coding:
Delphi-Quellcode:
AssignFile(txtQ, strQuelle + libFiles.Items[intHelp]);
Reset(txtQ);
AssignFile(txtZ, strZiel + libFiles.Items[intHelp]);
ReWrite(txtZ);
// 1. Kopieren und evtl. Konvertieren
while not Eof(txtQ) do begin
ReadLn(txtQ, strLine);
if strConvert = 'true' then begin
strLine := dvbk_ConvANSItoDOS(strLine);
end;
strLine := f_SonderZ(strLine);
WriteLn(txtZ, strLine);
end;
Bei der Konvertierung wird in Abhängigkeit von strConvert = true die Zeile von
ANSI (Quelle = IBM) nach DOS (MS-DOS 6.2) umgewandelt. Immer werden Sonderzeichen mit f_SonderZ ersetzt. Das nur zur Erklärung der beiden Funktionen - mit meinem Problem hat das nichts zu tun.
Mein Problem liegt da, dass am Ende der Zieldatei immer ein paar Byte fehlen. Die 1000 Sätze werden korrekt von der Quelldatei (txtQ) nach Zieldatei (txtZ) übertragen, nur in der letzten Zeilen fehlen immer ein paar Stellen. Die Satzlänge beträgt übrigen 1.623 Byte.
Ich habe schon versucht, nach dem Kopieren noch eine Leerzeile anzuhängen, das hat aber leider nichts gebracht.
Kennt jemand das Verhalten und hat einen Tipp, was ich tuen kann?
Viele Grüße
Rolf
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS
SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney