Ich code Dir hier mal eben das Kopieren des Inhaltes einer Datei in
eine andere runter und danach sage ich noch was zum Anhängen.
Dieser Stil ist ein alter
Pascal-Stil, den ich noch von damals aus dem
Abi kann. Es gibt viele, andere Mittel dieses Problem zu lösen,
Ich bin gerade auf der Arbeit und habe deshalb kein Delphi zur Hand.
Ich konstruiere das mal eben "per Stift"! Ich werde Dir alles
ausreichend dokumentieren, damit Du es nachvollziehen kannst.
Delphi-Quellcode:
// Erst mal Pfad von Quelle und Zieldatei definieren:
Const Quelle = 'C:\Quelle.dat';
Const Ziel = 'C:\windows\Desktop\Ziel.dat';
// Datenstruktur Deiner Datei
Type TRecord = Record
... // was auch immer, pack's einfach rein.
end;
Var QuellDat, ZielDat : File of TRecord; // Dateizuweisung des Datentyps!
Var Hilf : TRecord; // Muss äquivalent mit "File of" sein !!!
Begin
AssignFile(QuellDat, Quelle); // QuellDat-Variable des ext. Namen zuweisen
Reset(QuellDat); // vorhandene Datei öffnen
If IOResult = 0 then // Wenn kein Fehler ...
begin
AssignFile(ZielDat, Ziel); // ZielDat-Variable des ext. Namen zuweisen
Reset(ZielDat); // vorhandene Datei öffnen
If IOResult <> 0 then // Wenn Datei nicht vorhanden ...
Rewrite(ZielDat); // ... Erstelle neue Datei
While not Eof(QuellDat) Do // Solange Datei nicht am Ende
Begin
Read(QuellDat, Hilf); // Lese Record von QuellDat
Write(ZielDat, Hilf); // Schreibe Record in ZielDat
end
end
else { Fehler }; // Fehlerbehandlung
CloseFile(QuellDat); // Schließe QuellDat
CloseFile(ZielDat); // Mach zu, das Ding
end;
So, zum Anhängen von Informationen an eine Datei machst Du Folgendes:
Delphi-Quellcode:
Type TDatei = File of String; // muss nicht String sein, bloß ein Beispiel
Function PrepareForAppend(Var Datei : TDatei; FileName : String) : Boolean;
Begin
AssignFile(Datei, FileName); // Wieder mal einer Dateiveriable den ext. Namen zuweisen
Reset(Datei) // Vorhandene Datei öffnen.
If IOResult <> 0 then
Rewrite(Datei) // Bei nicht vorhanden sein, neu erstellen
{Und jetzt kommt der Knackpunkt!}
Seek(Datei, FileSize(Datei)); // Wir setzen den Cursor auf das Dateiende und damit können wir weitere Infos anhängen (konkatinieren)
Result:= (IOResult = 0) AND FileExists(FileName); // True, wenn kein Fehler + Datei vorhanden !
end;
Also Leute, macht's gut. Ich fahre nun heim.
DANNYBOY