Seite 1 von 1

OpenFile - Kein Fehler!

Verfasst: 27.07.2005 00:43
von MASH
Kann mir mal jemand sagen weshalb ich keine Fehlermeldung erhalte wenn ich diese datei öffne (Die Datei ist nicht Vorhanden).

Ich erhalte nur "-1".

Code: Alles auswählen

OpenFile_("C:\Thema.TXT",Space(255),OF_PROMPT)
im API-Guide steht:
OF_PROMPT
Displays a dialog box if the requested file does not exist. The dialog box informs the user that Windows cannot find the file, and it contains Retry and Cancel buttons. Choosing the Cancel button directs OpenFile to return a file-not-found error message.

Habe ich etwas übersehen??

Verfasst: 27.07.2005 00:53
von ts-soft

Code: Alles auswählen

Buffer.s = Space(255)
OpenFile_("C:\Thema.TXT",@Buffer, #OF_PROMPT)
Konstanten wird in PureBasic ein # vorangestellt. Das mit dem Pointer zu einem Buffer hab ich dann auch gleich korrigiert, obwohl daran lags nicht

Verfasst: 27.07.2005 00:57
von MASH
Wo ist denn der unterschied zwischen Pointer und Buffer?

Und wie erhalte ich eine Meldung mit "#OF_CANCEL"??

Verfasst: 27.07.2005 01:05
von ts-soft
MASH hat geschrieben:Wo ist denn der unterschied zwischen Pointer und Buffer?
Die API-Funktion erwartet die Adresse (Pointer) des Buffers um evtl Werte dort hineinzuschreiben.
MASH hat geschrieben: Und wie erhalte ich eine Meldung mit "#OF_CANCEL"??
Dieser Parameter wird ignoriert. Ist Wohl aus kompatibilität zu älteren Windows-Versionen (16-Bit ?) enthalten.

Verfasst: 27.07.2005 01:12
von MVXA
Um das jetzt etwas ausführlicher zu erklären:
Ein Buffer ist ein Speicherberreich in dem gearbeitet werden kann. Dieser
kann z.B. für Dateioperationen genutzt werden. Auch eine in PureBasic
deklarierte Variable ist ein Buffer, da man mit der Varlaibe arbeite kann.

Ein Pointer dagegen ist eine Zahl, die den aktuellen Aufenthalt des Buffers
im Speicher darstellt. Eine außenstehende Procedur kann nicht genau
erahnen, wo die Variable genau liegt, da nur die Werte auf einen Stack
gepusht werden. Deswegen muss man einen Pointer übergeben.