Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi File of Byte - Fehlermeldung (https://www.delphipraxis.net/119917-file-byte-fehlermeldung.html)

Thomm 3. Sep 2008 08:56


File of Byte - Fehlermeldung
 
Weiß jemand, warum ich immer ne Fehlermeldung bekomme ?

E/A-Fehler 32

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var f:File of byte; x:byte ;
begin
Filecreate('Test.dat');
assignfile(f,'Test.dat');
reset(f);
x:=4;
write(f,x);
closefile(f);

end;

bernau 3. Sep 2008 09:02

Re: File of Byte - Fehlermeldung
 
Filecreate erzeugt ein Handle. Dieses muss m.M. nach direkt wieder freigegeben werden, sonst kannst du auf die Datei nicht mit einer anderen Funktion, die nicht dieses Handle nutzt zugreifen.


Ungetestet:

Delphi-Quellcode:
fileclose(Filecreate('Test.dat'));

DeddyH 3. Sep 2008 09:05

Re: File of Byte - Fehlermeldung
 
Die Zeile mit FileCreate einfach weglassen. Eine Überprüfung des IO-Result (mit {$I-}) oder ein try-except-Block wären aber auch nicht überflüssig.

Klaus01 3. Sep 2008 09:11

Re: File of Byte - Fehlermeldung
 
Guten Morgen,

so sollte es auch gehen:


Delphi-Quellcode:
    x:=4;
    FileHandle := FileCreate('Test.dat');
    if FileHandle >=0 then
      begin
        FileWrite(FileHandle,x,1)
        FileClose(FileHandle);
      end;
Grüße
Klaus

Thomm 3. Sep 2008 09:20

Re: File of Byte - Fehlermeldung
 
Wenn man die erste Zeile wegläßt funktioniert es.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var f:File of byte; x:byte ;
begin
assignfile(f,'Test.dat');
reset(f);
x:=4;
write(f,x);
closefile(f);

end;

DeddyH 3. Sep 2008 09:21

Re: File of Byte - Fehlermeldung
 
Sicherlich, nur "Mischen" sollte man Pascal- und API-Aufrufe eben nicht.

gammatester 3. Sep 2008 09:30

Re: File of Byte - Fehlermeldung
 
Zitat:

Zitat von Thomm
Weiß jemand, warum ich immer ne Fehlermeldung bekomme ?

E/A-Fehler 32

Ja, weil Du reset(f,1) aufrufen mußt für ein file of byte. Reset(f) bedeutet aus historischen Gründen reset(f,128).

Gammatester

Thomm 3. Sep 2008 09:36

Re: File of Byte - Fehlermeldung
 
Reset(f,1) funktioniert nicht

zuviele Parameter

gammatester 3. Sep 2008 10:39

Re: File of Byte - Fehlermeldung
 
Zitat:

Zitat von Thomm
Reset(f,1) funktioniert nicht

zuviele Parameter

Stimmt! Den zweiten Parameter gibt's nur für untypisierte Dateien.

Gammatester

sirius 3. Sep 2008 11:51

Re: File of Byte - Fehlermeldung
 
Wenn du die Datei erstellen willst, dann nimm statt reset --> rewrite.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 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