![]() |
TFileStream, Daten werden nicht geschrieben, warum?
Hallo,
ich habe ein Programm, wie das hier:
Delphi-Quellcode:
Leider wird nichts auf Festplatte geschrieben. Warum nicht? Auch mit Huge String funktioniert es nicht.
program fileaccess;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, System.Classes; type TStringRec = record rErstesFeld: ShortString; rZweitesFeld: ShortString; rDrittesFeld: ShortString; end; var AFiler: TFileStream; ARec: TStringRec; begin try { TODO -oUser -cConsole Main : Code hier einfügen } ARec.ErstesFeld := 'erster Inhalt'; ARec.ZweitesFeld := 'zweiter Inhalt'; ARec.DrittesFeld := 'dritter Inhalt'; AFiler := TFileStream.Create('commands.def',fmCreate{ or fmShareDenyNone}); //AFiler.Write(ARec,Sizeof(ARec)); auch das funktioniert nicht AFiler.Write(ARec.rErstesFeld,Length(ARec.rErstesFeld)); AFiler.Write(ARec.rZweitesFeld,Length(ARec.rZweitesFeld)); AFiler.Write(ARec.rDrittesFeld,Length(ARec.rDrittesFeld)); AFiler.Free; //Ich dachte, vor der Freigabe würde der Filsstream seine Daten auf Platte schreiben. except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. Ich verwende Delphi 10.3.2 Community Edition ohne Updates |
AW: TFileStream, Daten werden nicht geschrieben, warum?
Versuch esmal mit einem qualifizierten Dateinamen z.B. C:\temp\Testdaten\command.txt
Gruß K-H |
AW: TFileStream, Daten werden nicht geschrieben, warum?
Dein Code compiliert ja nicht einmal...
|
AW: TFileStream, Daten werden nicht geschrieben, warum?
Übrigens:
Delphi-Quellcode:
zeigt nicht auf das erste Zeichen des ShortStrings!
ARec.rErstesFeld
|
AW: TFileStream, Daten werden nicht geschrieben, warum?
Zitat:
@Uwe Raabe: Ja auch das: Ich muss write(Rec.rErstesFeld[1], length(rErstesFeld)) schreiben, sonst wird das Längenbyte mit geschrieben, was ich natürlich nicht will. |
AW: TFileStream, Daten werden nicht geschrieben, warum?
Delphi-Quellcode:
Müsste es nicht var AFiler: TFileStream; ARec: StringRec;
Delphi-Quellcode:
heißen?var AFiler: TFileStream; ARec: TStringRec; |
AW: TFileStream, Daten werden nicht geschrieben, warum?
Zitat:
Und danke auch für die Anregung, den ganzen Record zu schreiben, statt die einzelnen Felder. . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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