![]() |
Problemm mit Speichern in Datei.
Hallo,
Ich habe in einer Datei folgendes stehen: 3,11,743,21,323....... Jetzt will ich das die 2 und 3 zahl also die zahl 11 geändert wird, und zwar von einer anderen zweistelligen zahl z.B: 34. Also soll nur die Zahl 11 in der Datei zur zahl 34 werden und sonst soll sich nichts ändern. Dazu habe ich folgendes geschrieben: (im edit1 steht die neue zahl)
Delphi-Quellcode:
assignfile(leveldatei, 'level.dat');
rewrite(leveldatei); seek(leveldatei,2); write(leveldatei, edit1.text); closefile(leveldatei); Leider funktioniert das nicht. Und selbst wenn es funktionieren würde dann würde ja 3,341,743,21,323....... in der Datei stehen oder? Könnt ihr mir ein wenig weiterhelfen? Ferby |
Re: Problemm mit Speichern in Datei.
du kannst wohl nur zeilenweise schreiben mit write *nicht 100%ig weis*
aber du könntest Tfilestream nehmen und an die position seeken und dort dann via strlcpy oder copy oder move befehle der winapi diese stellen "überschreiben" aber wenn die zeichen länger sind die du einfügen willst müsstest du warscheinlich erstmal die datei größer machen, alles ab der position um x bytes verschieben und dann deinen neuen text in die lücke schreiben oder du machst es noch einfacher *ohne gewär* lies eine zeile (und eventuell alles danach ?! ) dann ersetze die zeichen (ansireplacestr) und schreib die zeile wieder rein (warscheinlich geht nur "zeilenweise dazwischen rein schreiben" und deshalb müsstest du dann den rest auch nochmal mit schreiben der datei) also erst alles ab der zu ersetzenden zeile einlesen dann ersetzen dann das file kürzen ab der zeile (winAPI-> setfilelength oderso) und dann wieder alles dran anfügen so spart man sich von oben bis ersetz zeile die ausleserei und schreiberei oder noch einfacher *g* alles einlesen in ne stringliste dann ersetzen dann wieder alles speichern (datei leeren/löschen davor) |
Re: Problemm mit Speichern in Datei.
Also dein Code sollte funktionieren, da ja auf diese Weise nur Bytes überschrieben werden, also es wird nicht's verschoben, oder so.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz