da gibst nur eine möglichkeit:
du nimst dir zwei stream variablen
und schreibst dir die eine in der zweiten datei ein etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure Loesche_Datei_Anfang(neuerText:String; Datei:TFileName); var Stream1, Stream2:TFileStream; Write:TWriter; beginn Stream1:=TFileStream.Create(Datei,fmOpenRead); Stream2:=TFIleStream.Create(datei+'.tmp',fmCreate); Write:=TWriter(Stream2,10);
try Stream1.Pos:=Length(neuerText); Write.WriteString(neuerText); Stream2.CopyForm(Stream1,Stream1.Size); finally Stream1.Free; Stream2.Free; Write.Free; delteFile(Datei); RenameFile(datei+'.tmp',datei); end; end; |
ich hoffe diese proc funktioniert so, habe ich ebend hingeschrieben, beschreibung:
1. zwei Stream werden erstellt, der erste zum lesen und der zweit zum schreiben
2. die postion vom ersten stream wird auf die länge vom neuen Text gesetzt
3. Der neue text wird in Stream2 reingeschrieben und anschließent wird mit copyForm der rest von Stream1.Pos in Stream2 reingeschrieben.
4. Zum Schluß wird einfach nur noch die alte datei gelöscht und die tempdatei umbennant in der neuen datei.
hinweiß:
hirmit kannst du auch bin datein ändern