10. Arbeit mit Laufwerken und DatenträgernMit 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.DiskWriteablePrü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."
|
DiskSpacePrüft den auf einem Datenträger verfügbaren Platz.
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"
|
DiskExistPrü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!"
|
DriveInfoLiefert 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: 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 DriveInfoDriveInfo 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: 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 |
DiskRenameSchreibt 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 |
^ |