Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi speichern ohne komplett zu überschreiben (https://www.delphipraxis.net/61166-speichern-ohne-komplett-zu-ueberschreiben.html)

Ralle00 17. Jan 2006 18:48


speichern ohne komplett zu überschreiben
 
Hallo,
ich lerne Delphi in der Schule und habe ein Problem:
Ich habe eine ListBox in die ich verschiedene Angaben eingeben kann und kann die dann speichern.Wenn ich das Programm dann aber neu starte und unter dem selben Dateinamen etwas speicher wird der alte Inhalt der Datei überschrieben.
Ich denke der Fehler liegt bei 'Reset(f)',weil da der Dateizeiger auf 0 gestellt wird(so wie ich das verstanden hab).Gibt es einen Befehl,der den Dateizeiger an die jeweils letzte Stelle der Datei rückt,bevor gespeichert wird,um den Rest net zu überschrieben?
Wäre für Hilfe dankbar.

procedure TForm1.BSpeichernClick(Sender: TObject);
var f : File of TKollekte ;
k : Integer ;
Name : String ;
begin
Name := ESpeichern.Text ;
ASSIGNFILE(f,'C:\' + Name ) ;
{$I-}
Reset(f) ;
{$I+}
if IOResult <> 0 then
rewrite(f) ;
for k := 1 to 30 do
Write(f,AListe[k])
end;

mkinzler 17. Jan 2006 18:52

Re: speichern ohne komplett zu überschreiben
 
Eher am
Delphi-Quellcode:
Rewrite(f);
Versuchs mal mit
Delphi-Quellcode:
Append(f);

Ralle00 17. Jan 2006 19:28

Re: speichern ohne komplett zu überschreiben
 
Ne,"incompatible types" heißt es.Trotzdem danke

mkinzler 17. Jan 2006 19:34

Re: speichern ohne komplett zu überschreiben
 
Zitat:

Zitat von Ralle00
Ne,"incompatible types" heißt es.Trotzdem danke

Sorry du benutzt ja eine typisierte Datei Append funktioniert leider nur bei Textfiles. :-(
So bleibt dir wohl nix anderes übrig, als die datei mit Reset zu öffnen ( nicht Rewrite; löscht alte Datei) und dann mauell zum Ende zu springen.

3_of_8 17. Jan 2006 19:38

Re: speichern ohne komplett zu überschreiben
 
Dazu siehe die Befehle Seek(f); und FileSize(f);

Ralle00 18. Jan 2006 14:03

Re: speichern ohne komplett zu überschreiben
 
Vielen Dank,denke dass mich das weiterbringt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz