Seite 1 von 2

Wozu isfile()?

Verfasst: 14.02.2011 21:05
von SebastianJu2
Wozu braucht es denn den Befehl isfile()? Soweit ich lese testet man damit ob die Datei ordentlich initialisiert ist. Allerdings ist der Parameter wohl nicht wie erwartet ein String mit dem Pfad sondern ein Dateiid die man zB bei openfile festlegt.

Wozu braucht es also isfile? Man kann damit ja doch nicht vorher testen ob der Pfad eine korrekte Datei ist sondern man muß ohnehin als erstes openfile machen. Oder?

Re: Wozu isfile()?

Verfasst: 14.02.2011 21:36
von ts-soft
Steht eigentlich in der Hilfe, wie alle Is-Befehle gibt er zurück ob das Objekt gültig ist.
Zum überprüfen ob eine Datei existiert dient FileSize

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:19
von SebastianJu2
Die Hilfe habe ich gelesen. Die Frage ist nur wieso es den Befehl braucht wenn doch so wie so mit openfile oder readfile die Datei zuerst eingebunden werden muss um eine Dateiid zu bekommen. Und wenn dabei eine 0 rauskommt dann ist etwas falsch. Wenn etwas anderes dann ist alles korrekt.
Ich habe isfile() mal in einem Beispiel gesehen wo bei readfile() nicht die id vorgegeben wurde sondern von der funktion zurückgegeben wurde. Da weiß man dann ja nicht ob es eine korrekte Datei ist oder die zurückgegeben ID ein Fehlercode. Da musste isfile benutzt werden.
Ist isfile dann nur für den Fall da dass man bei openfile nicht selbst die id angibt?

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:20
von Nino
SebastianJu2 hat geschrieben:Die Hilfe habe ich gelesen.
[...]
Ich habe isfile() mal in einem Beispiel gesehen wo bei readfile() nicht die id vorgegeben wurde sondern von der funktion zurückgegeben wurde. Da weiß man dann ja nicht ob es eine korrekte Datei ist oder die zurückgegeben ID ein Fehlercode. Da musste isfile benutzt werden.
Nein, das ist falsch. Du hast die Hilfe nicht richtig gelesen.
SebastianJu2 hat geschrieben:Wozu braucht es also isfile?
Ein korrekt geschriebenes Programm sollte keinen Bedarf haben, irgendeine IsXXX()-Funktion aufzurufen .... sagt einer der PB-Entwickler.

Grüße, Nino

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:31
von SebastianJu2
Kommt drauf an ob in einer Programmiersprache die Befehle zum Dateiöffnen Fehler abfangen können. Wenn nicht dann würde es vorher schon Sinn machen mit einem Befehl isfile() zu testen ob das was man öffnen will auch eine korrekte Datei oder Pfad usw ist. Wenn der Befehl zum Dateiöffnen das schon macht dann gut.
Für Purebasic finde ich den Befehl isfile() dann aber irreführend benannt.

Das was der Entwickler sagt ist interessant... ich dachte #PB_Any kann man so nicht benutzen da Dateien auch die 0 als Handle bekommen könnten. Ist dann offenbar nicht der Fall...

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:31
von ts-soft
Wenn Du von verschiedenen Proceduren oder noch schlimmer Threads in eine geöffnete Datei schreibst,
sollte man wenigstens prüfen ob die noch offen ist.

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:32
von Nino
SebastianJu2 hat geschrieben:Kommt drauf an ob in einer Programmiersprache die Befehle zum Dateiöffnen Fehler abfangen können.
Es geht hier um das real existierende PureBasic.

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:46
von SebastianJu2
ts-soft hat geschrieben:Wenn Du von verschiedenen Proceduren oder noch schlimmer Threads in eine geöffnete Datei schreibst,
sollte man wenigstens prüfen ob die noch offen ist.
Stimmt... dann würde das Sinn machen. Obwohl ich mich frage ob der Zustand der Datei nicht übergeben werden könnte oder wenn nicht es nicht besser wäre die Datei immer neu zu öffnen und zu schließen. Aber egal... da würde isfile() wohl Sinn machen.

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:48
von SebastianJu2
Nino hat geschrieben:
SebastianJu2 hat geschrieben:Kommt drauf an ob in einer Programmiersprache die Befehle zum Dateiöffnen Fehler abfangen können.
Es geht hier um das real existierende PureBasic.
Ich bin Anfänger. Und wenn ich isfile() sehe dann denke ich erstmal der Befehl testet ob ein übergebener String zu einer korrekten Datei führt oder nicht. Ist aber egal jetzt...

Re: Wozu isfile()?

Verfasst: 14.02.2011 22:50
von Nino
SebastianJu2 hat geschrieben:Ich bin Anfänger.
Dann kann ich nur empfehlen, sorgfältig die Hilfe (und ggf. in den Foren) zu lesen, anstatt Dir irgendws zu denken.