![]() |
E/A Fehler 103
moin,
wo ist hier der fehler?
Delphi-Quellcode:
function TDataBase.AccountExists(const ANickname: string): boolean;
var DBFileItem: TDBFileItem; begin result := false; AssignFile(FDBFile, FFilePath); try if FileExists(FFilePath) then ReSet(FDBFile) else exit; while not EOF(FDBFile) do begin read(FDBFile, DBFileItem); result := DBFileItem.Nickname = ANickname; if result then exit; end; finally CloseFile(FDBFile); end; end; der fehler kommt nur wenn die datei noch nicht existiert, wenn sie existiert kommt der fehler nicht, aber ich finde nicht wo der fehler da ist? |
Re: E/A Fehler 103
Hallo Pseudemys Nelsoni,
die Datei ist nicht geöffnet worden ... bye Claus |
Re: E/A Fehler 103
aber das "AssignFile" wurde ja ausgeführt oder? und das "CloseFile" muss am ende ja ausgeführt werden. ich weiss nicht wie ich den fehler behebe. nach meinem code läuft das so ab wenn eine datei nicht existiert:
AssignFile exit CloseFile(wird noch ausgeführt durch finally) also kann doch nix falsch sein? |
Re: E/A Fehler 103
Moin Pseudemys Nelsoni,
AssignFile tut nichts anderes, als der Dateivariablen einen Pfad zuzuordnen. Demzufolge läuft CloseFile u.U. auf eine nicht geöffnete Datei. |
Re: E/A Fehler 103
Hallo Christian,
hmm, hats du eine idee was ich tun kann? soll ich das finally dann weglassen und das closefile nicht ausführen`? |
Re: E/A Fehler 103
Danke Christian, Du spricht mir aus der Seele. Wenn es die Datei nicht gibt, gibt es wenigsten einen Fehler und lesen funktioniert ohne Datei auch nicht. Der Grund ist, das FileExist keine Exception auslöst.
bye Claus |
Re: E/A Fehler 103
ich les die datei doch gar nicht, nur wenn FileExists true ist, was hier nicht der fall ist.
hier wird lediglich AssignFile FileExists exit CloseFile (hier die exception) ausgeführt... |
Re: E/A Fehler 103
Hallo Pseudemys Nelsoni,
versuch es mal so
Delphi-Quellcode:
bye
function TDataBase.AccountExists(const ANickname: string): boolean;
var DBFileItem: TDBFileItem; begin Result := False; if not(FileExists(FFilePath)) then Exit; AssignFile(FDBFile, FFilePath); Resset(FDBFile); // <<<==--- Sorry den hatte ich vergessen while not EOF(FDBFile) do begin Read(FDBFile, DBFileItem); Result := DBFileItem.Nickname = ANickname; if Result then Exit; end; CloseFile(FDBFile); end; Claus |
Re: E/A Fehler 103
danke duffy, das geht :)
|
Re: E/A Fehler 103
Hallo,
hier noch ein Programmstück:
Delphi-Quellcode:
mfg
uses
System; .... {$I-} AssignFile(f, lw_path_und_filename); Reset(f); // für Lesen oder Append(f); // für Anhängen if IOResult <> 0 then begin // Fehler beim Öffnen Rewrite(f); // Erzeuge Datei if IOResult <> 0 then begin ShowMessage('Datei konnte nicht angelegt werden'); exit; end; end; Append(f); Writeln(f, 'irgendwas'); Flush(f); // Sicherstellen, daß der Text tatsächlich in die Datei geschrieben wird. CloseFile(f); {$I+} .... eddy [edit=Christian Seehase]Tags korrgiert. Mfg, Christian Seehase[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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