![]() |
SaveDialog - Add statt Overwrite
Ich weiss, der Threadtitel is nicht ganz optimal, aber das, was ich ursprünglich eingeben wollte, ist zu lang..
Mein Prob: Per SaveDialog soll eine Datei ausgewählt/ein Dateiname eingegeben werden. Dann will ich in mehreren Schritten Sachen in die Datei speichern. Die Daten sollen jeweils hinten angefügt werden... So wie bei PHP fopen mit Parameter a(+) Hier mal ein Beispiel: In der Datei abc.txt steht das: Zitat:
Zitat:
MfG Z4ppy PS.: NEIN, ich will das nicht mit einem Memo lösen, wo ich die Daten reinlade und dann wieder abspeicher... PS2.: Benutze Delphi 7... |
Re: SaveDialog - Add statt Overwrite
Hallo,
Du könntest eine StringList nehmen und da die Datei hineinladen und Zeilen hinzufügen. Oder Du schaust Dir append an. Grüße Klaus |
Re: SaveDialog - Add statt Overwrite
Wie schreibst du die Datei?
Du könntest mit Text Append() verwenden |
Re: SaveDialog - Add statt Overwrite
Zitat:
Und wenn man den Threadtitel in der suche eingibt, findet man eventuell schon was brauchbares. |
Re: SaveDialog - Add statt Overwrite
Das geht auch mit Streams:
Delphi-Quellcode:
Aus dem Kopf in den Beitragseditor getippt, also ohne Gewähr.
function AddStringToFile(const s: string; const filename: string; newline: boolean=true)
var filestream: tfilestream; nl: string; begin filestream := tfilestream.create(filename,fmCreate); try filestream.position := filestream.size; if newline then begin nl := #13#10; filestream.write(pchar(nl),2); end; filestream.write(pchar(s),length(s)); finally filestream.free; end; end; |
Re: SaveDialog - Add statt Overwrite
Danke :)
Aber: Compiler meckert ziemlich... 1. "Function needs result type" << is klar... 2. "Variable required" << das 2mal, bei folgenden Zeilen:
Delphi-Quellcode:
filestream.write(pchar(nl),2);
Delphi-Quellcode:
1. kann ich natürlich selber reparieren, 2. leider net... Kann mir da noch jemand helfen?
filestream.write(pchar(s),length(s));
MfG Z4ppy |
Re: SaveDialog - Add statt Overwrite
Ich denke, es ist einfacher mit TStrings.
Delphi-Quellcode:
Beim nächsten mal aber bite vorher suchen, das gab es hier schon dutzende male.
function AddStringToFile(const Text: String; const FileName: String): Boolean;
var List: TStrings; begin Result := False; if not FileExists(FileName) then Exit; List := TStringList.Create; try List.LoadFromFile(FileName); List.Add(Text); List.SaveToFile(FileName); Result := True; finally List.Free; end; end; |
Re: SaveDialog - Add statt Overwrite
1. Sry, ich meinet natürlich procedure, nicht function
2. Das wundert mich. Probier es mal ohne pchar(). Wenn das immer noch nicht klappt, probier s[1] bzw nl[1]. [add] TStrings lädt aber die gesamteDatei in den Arbeitsspeicher. Ein Filestream nicht. |
Re: SaveDialog - Add statt Overwrite
Solltest du die FileStreams verwenden, müsste der 2. Parameter beim Create aber fmOpenWrite sein, oder? :gruebel:
|
Re: SaveDialog - Add statt Overwrite
Danke, NamenLozer... Ohne PChar gehts wunderbar :)
MfG Z4ppy [ADD] oO geht doch nicht :( Also der Compiler gibt zwar keine Warnung aus, aber in der Datei steht dann nur Datenmüll... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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-2025 by Thomas Breitkreuz