6. Das Dateisystem

^

6.1 Dateitypen

GEOS kennt verschiedene Dateitypen. Aus Gründen des Systematik werden in diesem Zusammenhang auch Ordner als spezielle Type von Dateien angesehen. Die Tabelle unten enthält eine Übersicht sowie die Namen der numerischen Konstanten, die R-BASIC für diesen Zweck zur Verfügung stellt. Der Vorsatz GFT_ steht für "GeosFileType"

FileType

Mit der Funktion FileType ermitteln Sie den Typ einer Datei. Die Datei kann durch ihren Namen oder eine Dateivariable spezifiziert werden. Die Systemvariable fileError wird gesetzt oder gelöscht.
Syntax: <numVar> = FileType ( fileName$)
   <numVar> = FileType ( <fh> )

fileName$: Name der Datei. Pfadangaben im Namen sind zulässig.

<fh>: Variable (oder Ausdruck) vom Typ FILE. Bezeichnet die Datei.

Return: Dateityp entsprechend der Tabelle unten


Beispiel:
DIM type as word
  type = FileType ("Bilder")
  IF ( type = GFT_DIRECTORY) THEN Print "Es ist ein Ordner!"

Tabelle

Tabelle: GeosFileTypen

Hinweis für PC/GEOS-SDK-Programmierer: Die PC/GEOS-SDK-Routinen hinter diesem Befehl (FileGetHandleExtAttributes und FileGetPathExtAttributes) liefern beim Auffinden einer DOS-Datei oder eines DOS-Verzeichnissen den Fehler ERROR_ATTR_NOT_FOUND. R-BASIC fängt das ab und liefert den korrekten FileType-Wert.

^

6.2 Fehlerbehandlung, die Variable fileError

Bei Dateioperationen kann es immer vorkommen, dass ein Problem auftritt, z.B. dass eine Datei nicht gefunden wird. Das erfordert meistens keinen Programmabbruch, sondern das Programm kann darauf reagieren, indem es die numerische Systemvariable fileError abfragt.

Alle Befehle, die mit Dateien und Pfaden arbeiten (mit Ausnahme der FileFind-Routinen) belegen die fileError-Variable.

Das bedeutet: Trat eine Fehler auf, wird ein Fehlercode (Fehlernummer) in der Variablen angelegt. Trat kein Fehler auf, wird die Variable mit Null belegt. Der Wert wird dort bis zur nächsten Dateioperation gespeichert und kann beliebig oft abgefragt werden. Im Anhang finden Sie eine Liste der Fehlercodes.

ErrorText$

In GEOS sind sehr viele Fehlercodes definiert, nicht nur für Dateioperationen. Einige davon sind MS-DOS-Fehler, andere sind GEOS-intern. Bei der Arbeit an einem Programm, das Fehlercodes auswerten und entsprechend reagieren soll, aber auch bei der Fehlersuche im eigenen Programm selbst, ist es sehr hilfreich, die Bedeutung dieser Codes zu kennen.

Die Funktion ErrorText$ liefert zu einem Fehlercode den passenden Text. Das sind weitgehend selbsterklärende, aber englische Bezeichnungen, die 1:1 dem PC/GEOS-SDK entnommen wurden, z.B. ERROR_PATH_NOT_FOUND (Pfad nicht gefunden).

Bei unbekannten Fehlern wird ein Text in der Form <ERROR_CODE: 301> geliefert.


Syntax: <stringVar> = ErrorText$(fehlerCode)
Beispiel:
IF (fileError) THEN Print ErrorText$(fileError)

^

6.3 Arbeit mit FILE Variablen

Eine komplette Beschreibung der Variablentypen, auch des Datentyps FILE , finden Sie im R-BASIC Programmierhandbuch.

Variablen vom Typ FILE können behandelt werden wie alle anderen Variablen in R-BASIC auch. Man kann z.B. Felder von Dateivariablen anlegen (z.B. DIM dateien(10) AS FILE), sie als Elemente von Strukturen verwenden, als Parameter an SUB's oder FUNCTION's übergeben oder als Rückgabetyp von FUNCTION's benutzen. Nur "rechnen" kann man mit ihnen nicht.

An dieser Stelle soll noch einmal auf die Funktionen NullFile und FileInfo$ hingewiesen werden.

NullFile

NullFile( ) ist eine Funktion, die eine "leere" Dateivariable liefert, d.h. sie dient zum Löschen einer Dateivariable. Achtung! NullFile( ) schließt die Datei nicht. Verwenden Sie dazu vorher FileClose().
Syntax: <han> = NullFile( )
Die Klammern sind erforderlich, weil NullFile eine Funktion ist.

<han>: Variable vom Typ FILE



FileInfo$

Die Funktion FileInfo$ liefert einen Text, der interne Informationen über eine Dateivariable liefert. Sie können diese Funktion zur Fehlersuche einsetzen.
Syntax: <stringVar> = FileInfo$( <f> )

<f>: Variable oder Ausdruck vom Typ FILE

<stringVar>: Stringvariable


^

Weiter...