AGB  ·  Datenschutz  ·  Impressum  







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

EFOpenError findet Datei nicht

Ein Thema von Wolfsherz · begonnen am 25. Dez 2009 · letzter Beitrag vom 25. Dez 2009
Antwort Antwort
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#1

EFOpenError findet Datei nicht

  Alt 25. Dez 2009, 21:02
Hallo,

bei folgender Funktion bekomme ich eine EFOpenError-Fehlermeldung, obwohl der Pfad für meinen PC 100% stimmt. Dass ich den noch mit einer "SHGetSpecialFolderPath Function" oder "SHGetFolderPath Function" habe ich nach einiger Recherche schon herausgefunden, allerdings soll es ja erstmal überhaupt klappen, bevor ich es allgemein gestalte.

Frage: Wieso kann er die Datei "Spionageberichte.txt" nicht öffnen, obwohl der Pfad eindeutig stimmt?

Delphi-Quellcode:
function LadeSpio(Pfad: string): String;
var Spio: TStringList;
begin
  Spio := TStringList.Create;
  try
    try
      Spio.LoadFromFile('F:\Eigene Dateien\Ordner1\' + Pfad + '\Spionageberichte.txt');
    except
      Showmessage('Fehler (01). Bei Fragen bitte an den Support wenden.' + #13 +
      'Die Datei ist nicht vorhanden. Bitte eventuell den Dateipfad nachprüfen.');
    end;
  finally
    Spio.Free;
  end;
  result := Spio.text;
end;

Vielen Dank für eure Mühe.
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
508 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: EFOpenError findet Datei nicht

  Alt 25. Dez 2009, 21:14
Das könnte daran liegen das du via result := Spio.text; auf Spio zugreifst obwohl du vorher schon Spio.Free aufgerufen hast.

[EDIT]
Wie sollte der Pfad zur Datei eigentlich wirklich bei dir aussehen? Weil so wie es im Moment aussieht vermischt du deinen festen Pfad mit einer Variable was in diesem Fall auch in die Hose gehen könnte.
  Mit Zitat antworten Zitat
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#3

Re: EFOpenError findet Datei nicht

  Alt 25. Dez 2009, 21:24
Ruft er das nicht nur auf, wenn das "Try" erfolglos war?
Außerdem habe ich es gerade mal ohne probiert, aber es kam die selbe Fehlermeldung.
Das war's wohl leider nicht.

Also "Pfad" ist ein variabler Ordnername, den ich in einem TEdit-Feld eingeben kann. Beispielsweise: "Spieler1".
Dann wäre der komplette Pfad: "F:\Eigene Dateien\Ordner1\Spieler1\Spionageberichte\Spionage bericht.txt"

Aber gerade, wo ich das schreibe, merke ich, dass ich ein "Spionageberichte" zu wenig eingefügt hatte. Oh mann, dabei habe ich den Pfad extra drei Mal überprüft. Vielen Dank, du hast mich gewaltsam mit der Nase draufgestoßen. ;p

[Edit]
Soll ich für eine neue Frage (zum SHGetFolderPath) jetzt eigentlich ein neues Thema eröffnen oder kann ich hier weiterfragen?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: EFOpenError findet Datei nicht

  Alt 25. Dez 2009, 21:33
Du hast mindestens zwei Fehler in deinem Code.
Fehler 1:
wenn du einen Dateinamen aus mehreren Teilen zusammensetzt, dann achte darauf, dass es immer eine Zwischenvariable gibt.
Delphi-Quellcode:
function LadeSpio(Pfad: string): String;
var Spio: TStringList;
  dateiname:string;
begin
  dateiname := 'F:\Eigene Dateien\Ordner1\' + Pfad + '\Spionageberichte.txt';
Nur mit der Zwischenvariable kannst du herausfinden, ob der Dateiname inkl. Pfad wirklich in Ordnung ist

Fehler 2:
deine Fehlermeldung ist ziemlich "gaga".
Gib dem Benutzer eine Fehlermeldung mit der er auch wirklich etwas anfangen kann.
Zwingend notwendig wäre hier der volle Dateiname!
Delphi-Quellcode:
try
   Spio.LoadFromFile(dateiname);
except
  on E:Exception do
  begin
    E.Message := 'Spionagebericht kann nicht geladen werden'#13#10+
   'Die Datei '+dateiname+' ist nicht vorhanden. Bitte eventuell den Dateipfad nachprüfen.'#13#10+
    E.Message;
    raise;
  end;
end;
fork me on Github
  Mit Zitat antworten Zitat
Wolfsherz

Registriert seit: 17. Dez 2009
7 Beiträge
 
#5

Re: EFOpenError findet Datei nicht

  Alt 25. Dez 2009, 21:38
Hm, stimmt! Das hätte mir die Fehlersuche mithilfe von F8 wohl erleichtert. Werde drauf achten, vielen Dank.
  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 03:34 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