Wozu isfile()?

Anfängerfragen zum Programmieren mit PureBasic.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Wozu isfile()?

Beitrag 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?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wozu isfile()?

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: Wozu isfile()?

Beitrag 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?
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wozu isfile()?

Beitrag 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
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: Wozu isfile()?

Beitrag 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...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wozu isfile()?

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wozu isfile()?

Beitrag 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.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: Wozu isfile()?

Beitrag 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.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: Wozu isfile()?

Beitrag 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...
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wozu isfile()?

Beitrag 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.
Antworten