Hallo,
sorry wenn ich das so sagen muss, aber was du nach der Abfrage machst, ist schlechtweg "unelegant". Warum nicht gleich so?
Delphi-Quelltext
1: 2: 3:
| if (FileExists('bla') or (MessageDlg(bla) = mrYes) then begin FS := TFileStream.Create(Fn, fmCreate of fmShareDenyWrite); |
Du sparts dir mindestens fünf Zeilen.
Nun zum eigentlichen Problem: Ein String besteht aus einer Zeichenkette mir der Größe in den ersten Bytes. Deshalb kannst du diesen nicht so einfach in eine Datei schreiben. Erst recht weiss ich nicht, was SizeOf für einen Wert gibt.
So geht das Schreiben zum Beispiel (aus dem Kopf:
FS.Write(S[1], Length(S));Dann weisst du allerdings beim auslesen nicht, wieviel du Auslesen möchtest. Deshalb empfiehlt es sich, zunächst die Länge des Strings zu speichern und danach diesen selber. Das Auslesen geht ähnlich, allerdings musst du daran denken die Größe davor zu setzen.
Ich hoffe du kommst jetzt klar, ich denke das ist nun zu schaffen!
Edit: Boolsche Algebra, korrigiert...
Gruß Hape!
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.