AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

E/A Fehler 103

Ein Thema von Pseudemys Nelsoni · begonnen am 28. Sep 2004 · letzter Beitrag vom 28. Sep 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

E/A Fehler 103

  Alt 28. Sep 2004, 18:06
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:10
Hallo Pseudemys Nelsoni,
die Datei ist nicht geöffnet worden ...

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:12
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:15
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:17
Hallo Christian,


hmm, hats du eine idee was ich tun kann? soll ich das finally dann weglassen und das closefile nicht ausführen`?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#6

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:21
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
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:25
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...
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#8

Re: E/A Fehler 103

  Alt 28. Sep 2004, 18:36
Hallo Pseudemys Nelsoni,
versuch es mal so
Delphi-Quellcode:
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;
bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: E/A Fehler 103

  Alt 28. Sep 2004, 19:08
danke duffy, das geht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#10

Re: E/A Fehler 103

  Alt 28. Sep 2004, 19:17
Hallo,

hier noch ein Programmstück:

Delphi-Quellcode:
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+}
    ....
mfg
eddy

[edit=Christian Seehase]Tags korrgiert. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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