10. Arbeit mit Laufwerken und Datenträgern

Mit DiskWriteable, DiskSpace, DiskExist und DriveInfo erhalten Sie Informationen über Datenträger oder Laufwerke. DiskGetName$ und DiskRename arbeiten mit der Datenträgerbezeichung. Diese Befehle setzen alle die Systemvariable fileError (z.B. wenn das Laufwerk nicht existiert) oder löschen sie, wenn kein Fehler auftrat.

DiskWriteable

Prüft, ob sich ein beschreibbarer Datenträger im Laufwerk befindet. DiskWriteable liefert "wahr" (TRUE, -1) wenn sich ein beschreibbarer Datenträger im Laufwerk befindet. Existiert das Laufwerk nicht, befindet sich kein, oder kein formatierter Datenträger im Laufwerk, liefert DiskWriteable "falsch" (FALSE, 0).
Syntax: <numVar> = DiskWriteable(lw$)

lw$: Laufwerksbezeichnung, z.B. "A:" oder "D:"

<numVar>: numerische Variable


Beispiel:
IF DiskWriteable("a:") = 0 THEN Print "Die Diskette ist schreibgeschützt."

DiskSpace

Prüft den auf einem Datenträger verfügbaren Platz.
Syntax: <numVar> = DiskSpace(lw$ [, all ])

lw$: Laufwerksbezeichnung, z.B. "A:" oder "D:"

all: (optional) Wenn angegeben und ungleich Null,
liefert DiskSpace den insgesamt auf dem Datenträger vorhandenen Platz.

Wenn nicht angegeben oder gleich Null, liefert DiskSpace den freien Speicherplatz auf dem Datenträger.

<numVar>: numerische Variable

Wenn mehr als 2 GB verfügbar bzw. vorhanden sind, liefert DiskSpace immer den Maximalwert von 2 147 418 112 Byte zurück.

Beispiel:

Print "Speicherstatus von Laufwerk C:"
Print DiskSpace("C:", TRUE) " Bytes insgesamt"
Print DiskSpace("C:") " Bytes verfügbar"

DiskExist

Prüft, ob sich ein formatierter Datenträger im Laufwerk befindet. Wenn Sie wissen wollen, ob ein bestimmtes Laufwerk existiert, verwenden Sie DriveInfo (unten). DiskExist liefert "wahr" (TRUE, -1), wenn ein formatierter Datenträger im Laufwerk ist. Das gilt auch für Festplatten. Befindet sich kein oder nur ein unformatierter Datenträger im Laufwerk, liefert DiskExist "falsch" (FALSE, 0).
Syntax: <numVar> = DiskExist(lw$)

lw$: Laufwerksbezeichnung, z.B. "A:" oder "D:"


Hinweis: DiskExist setzt die Systemvariable fileError auf 0, wenn das Laufwerk existiert, aber kein Datenträger enthalten ist.

Beispiel:

IF DiskExist("a:") = 0 THEN Print "Legen Sie eine formatierte Diskette ein!"

DriveInfo

Liefert ausführliche Informationen über das angegebene Laufwerk. DriveInfo gibt Null zurück, wenn das Laufwerk nicht existiert, andernfalls einen Wert ungleich Null.
Syntax: <numVar> = DriveInfo(lw$)

lw$: Laufwerksbezeichnung, z.B. "A:" oder "D:"


Beispiel:
IF DriveInfo("H:") = 0 THEN Print "Laufwerk H: existiert nicht"
Existiert das Laufwerk, enthält der Rückgabewert vielfältige Informationen über das Laufwerk, wobei jedes einzelne Bit eine Bedeutung hat. Die Auswertung dieser Daten ist etwas für Experten. Kenntnisse im Umgang mit Bits und logischen Verknüpfungen sind hilfreich. R-BASIC unterstützt die Arbeit mit den wichtigsten Eigenschaften durch ein paar vordefinierte Konstanten.

Tabelle

Tabelle: R-BASIC Konstanten für DriveInfo.

Verwenden Sie die Konstanten wie folgt:

Beispiel 1:

DIM bitfeld AS word

bitfeld = DriveInfo ("D:")
IF bitfeld = 0 THEN Print "Laufwerk D: existiert nicht"

! ## Abfragen für Experten
IF bitfeld AND DI_REMOVABLE THEN
  Print "Datenträger in D: ist entnehmbar"
END IF
IF (bitfeld AND DI_TYPE_MASK) = DI_CD_ROM THEN
  Print "Laufwerk D: ist ein CD-Laufwerk"
END IF
Beispiel 2:
DIMinfo, type AS word

info = DriveInfo ("D:")

! ## Herausfinden des Laufwerkstypes
type = info AND DI_TYPE_MASK            ' Bits 4 .. 15 Null setzen
IF type AND DI_FIXED THEN Print "Festplatte"
IF type AND DI_CD_ROM THEN Print "CD-ROM Laufwerk"

! ## Entnehmbar und beschreibbar
IF info AND DI_REMOVABLE THEN Print "Entnehmbarer Datenträger"
IF info AND DI_READ_ONLY THEN Print "Nur-Lesen Datenträger"

Bedeutung der Bits im Rückgabewert von DriveInfo

DriveInfo liefert eine 16-Bit Wert, der ausführliche Informationen über das abgefragte Laufwerk enthält. Hier finden Sie eine komplette Liste der Bits. Kenntnisse im Umgang mit Bits und logischen Verknüpfungen sind hilfreich.

Hinweis: Die meisten Infos sind der PC/GEOS-SDK-Dokumentation ungeprüft entnommen. Für eventuelle Fehler in der PC/GEOS-SDK-Dokumentation kann R-BASIC nichts.

Tabelle

Tabelle: Bedeutung der Bits im Rückgabewert von DriveInfo.

DiskGetName$

Liest die Datenträgerbezeichnung.
Syntax: <name$> = DiskGetName$ (lw$)

Parameter: lw$:Laufwerksbezeichnung, z.B. "A:" oder "D:"


Fehlerbedingung: Die Systemvariable fileError wird gesetzt oder zurückgesetzt.

Beispiel:

DIM s$, n$
s$ = "a:"
n$ = DiskGetName$(s$)
IF fileError THEN
  Print "Fehler beim Lesen der Bezeichnung von ";s$
ELSE
  Print "Datenträger im Laufwerk "; s$; "heißt ";n$
END IF

DiskRename

Schreibt die Datenträgerbezeichnung.
Syntax: DiskRename lw$, name$

Parameter: lw$: Laufwerksbezeichnung, z.B. "A:" oder "D:"

name$: Neue Datenträgerbezeichnung


Fehlerbedingung: Die Systemvariable fileError wird gesetzt oder zurückgesetzt.

Beispiel:

DIM s$
s$ = "a:"
DiskRename s$, "Paul"
IF fileError THEN
  Print "Fehler beim Setzen der Bezeichnung von ";s$
ELSE
  Print "Datenträger im Laufwerk "; s$; "heißt jetzt"; DiskGetName$(s$)
END IF

^

Weiter...