Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - FILEATTR

Referenz-Navigation

 

Syntax: FILEATTR ( Dateinummer, [Ausgabe] )
Typ: Funktion
Kategorie: Dateien

FILEATTR gibt Informationen über eine mit BefehlsreferenzeintragOPEN geöffnete Datei zurück.

Anmerkung:
Um diese Funktion nutzen zu können, muss die Datei file.bi in Ihren Quellcode eingebunden werden, z.B. mit BefehlsreferenzeintragINCLUDE. Alternativ können Sie auch die Datei vbcompat.bi einbinden, da diese die file.bi automatisch in Ihr Programm lädt.

Abhängig von 'Ausgabe' werden verschiedene Werte ausgegeben. Um den Code besser lesbar zu gestalten, sind in der Datei 'file.bi' Symbole definiert worden, welche die Information hinter den Zahlenwerten in Worten wiedergeben. Folgende Werte können angegeben werden bzw. werden ausgegeben:

Wert für 'Ausgabe'Symbol für 'Ausgabe'Zurückgegebene InformationRückgabewerteSymbole für Rückgabewerte
1fbFileAttrModeDateimodus (z.B. BefehlsreferenzeintragBINARY), in dem 'Dateinummer' geöffnet wurde1
2
4
8
32
fbFileModeInput
fbFileModeOutput
fbFileModeRandom
fbFileModeAppend
fbFileModeBinary
2fbFileAttrHandleDer Handle, über den das System auf die Datei zugreift. Es ist derselbe Handle, den die C Runtime-Library verwendet.

Nur unter Windows:
Wenn an dieser Stelle der Handle eines geöffneten COM-Geräts abgefragt wird, gibt FreeBASIC das Ergebnis der API CreateFile() zurück. Der Rückgabewert für den Handle eines geöffneten LPT-Geräts ist das Ergebnis der API OpenPrinter(). Diese Handle-Werte können an andere Windows-API-Funktionen übergeben werden.

Nur unter Linux:
Der Rückgabewert für ein geöffnetes COM-Gerät ist der Datenbezeichner, der von OPEN() zurückgegeben wird.
- entfällt - - entfällt -
3fbFileAttrEncodingDie Codierungsvariante (z.B. ASCII, UTF-8), mit der die Datei behandelt wird. Siehe auch BefehlsreferenzeintragENCODING.0
1
2
3
fbFileEncodASCII
fbFileEncodUTF8
fbFileEncodUTF16
fbFileEncodUTF32

Beispiel 1:

#INCLUDE "file.bi"

DIM f AS INTEGER
f = FREEFILE

OPEN "C:\BASIC\FreeBASIC\fbc.exe" FOR INPUT AS #f

SELECT CASE FILEATTR(f, fbFileAttrMode)
CASE fbFileModeInput
   PRINT "Die Datei wurde im INPUT-Modus geoeffnet"
CASE fbFileModeOutput
   PRINT "Die Datei wurde im OUTPUT-Modus geoeffnet"
CASE fbFileModeAppend
   PRINT "Die Datei wurde im APPEND-Modus geoeffnet"
CASE fbFileModeRandom
   PRINT "Die Datei wurde im RANDOM-Modus geoeffnet"
CASE fbFileModeBinary
   PRINT "Die Datei wurde im BINARY-Modus geoeffnet"
END SELECT

PRINT "Das System-Handle zur Datei ist"; FILEATTR(f, fbFileAttrHandle)

SELECT CASE FILEATTR(f, fbFileAttrEncoding)
CASE fbFileEncodASCII
   PRINT "Die Datei ist als ASCII-Datei geoeffnet"
CASE fbFileEncodUTF8
   PRINT "Die Datei ist als UTF-8-Datei geoeffnet"
CASE fbFileEncodUTF16
   PRINT "Die Datei ist als UTF-16-Datei geoeffnet"
CASE fbFileEncodUTF32
   PRINT "Die Datei ist als UTF-32-Datei geoeffnet"
END SELECT

CLOSE #f

SLEEP

Ausgabe:

Die Datei wurde im INPUT-Modus geoeffnet
Das System-Handle zur Datei ist 2009267424
Die Datei ist als ASCII-Datei geoeffnet

Beispiel 2:

#INCLUDE "vbcompat.bi"
#INCLUDE "crt.bi"

DIM f AS FILE PTR, i AS INTEGER

' Öffne eine Datei und schreibe einige Zeilen hinein
OPEN "test.txt" FOR OUTPUT AS #1
f = CAST( FILE PTR, FILEATTR( 1, fbFileAttrHandle ))
FOR i = 1 TO 10
  fprintf( f, !"Line %i\n", i )
NEXT i
CLOSE #1

' Öffne die Datei erneut, und lese den Text aus dieser

OPEN "test.txt" FOR INPUT AS #1
f = CAST( FILE PTR, FILEATTR( 1, fbFileAttrHandle ))
WHILE feof(f) = 0
  i = fgetc(f)
  PRINT CHR(i);
WEND
CLOSE #1

Unterschiede zu QB:

Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.17

Siehe auch:
BefehlsreferenzeintragOPEN, BefehlsreferenzeintragENCODING, BefehlsreferenzeintragDateien (Files), BefehlsreferenzeintragBetriebssystem-Anweisungen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 27.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen