Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Disk ID herausfinden (https://www.delphipraxis.net/28540-disk-id-herausfinden.html)

Whistler 26. Aug 2004 00:02


Disk ID herausfinden
 
Guten Morgen,

Befehle wie "DiskFree" benötigen ja die Laufwerkd-ID. Wie finde ich diese heraus?

Hintergrund:
User gibt einen Pfad an, wohin Daten kopiert werden. Den Pfad habe ich in einem Edit-Feld, sagen wir "Edit1.Text". Ich möchte nun wissen ob "dort" genügend Platz ist...

Master_BB 26. Aug 2004 00:16

Re: Disk ID herausfinden
 
hm also bei mir steht in der hilfe die diskfree funktion so
function DiskFree(Drive: Byte): Int64;

das heißt du gibst den Drive hin.
Drive ist eine natürliche zahl und in der hilfe steht Laufwerk A = 1 - B = 2 usw
das heißt du schneidest den laufwerksbuchstaben aus zählst aus welche zahl er hat
und gibst es diskfree das dir dann die byte anzahl des verfügbaren speichers gibt

hoffe ich konnte helfen

Luckie 26. Aug 2004 00:16

Re: Disk ID herausfinden
 
Hilfe lesen bildet: ;)
Zitat:

Returns the number of free bytes on a specified drive.

Unit

SysUtils

Category

file management routines

Delphi-Quellcode:
function DiskFree(Drive: Byte): Int64;
Description

DiskFree returns the number of free bytes on the specified drive, where 0 = Current, 1 = A, 2 = B, and so on.

DiskFree returns -1 if the drive number is invalid.

Whistler 26. Aug 2004 00:19

Re: Disk ID herausfinden
 
Habt ia Recht :)

Kurze Frage zur Hilfe:
Zitat:

where 0 = Current
Ist Current das Laufwerk wo das Programm selbst liegt?

Luckie 26. Aug 2004 00:37

Re: Disk ID herausfinden
 
Nein, das aktuelle Laufwerk eben.

nailor 26. Aug 2004 01:25

Re: Disk ID herausfinden
 
wer hat diese aktuellen laufwerke / aktuellen verzeichnisse / pfade... überhaupt erfunden? die machen doch nur bugs, weil sie andauernd wechseln, anstatt irgendeinen nutzen zu haben.

stichwort relative pfade, paramstr(0)...

Whistler 26. Aug 2004 02:26

Verdammt es ist spät - schon gut :)

Brüggendiek 26. Aug 2004 21:51

Re: Disk ID herausfinden
 
Hallo!

Zitat:

Zitat von nailor
wer hat diese aktuellen laufwerke ... überhaupt erfunden?

Das war die Firma "Digital Research"! In deren "Control Program for Microcomputers", kurz CP/M, war das schon so vorhanden - betraf aber üblicherweise nur die Diskettenlaufwerke A und B (mehr war zu teuer!).
Das Programm war "das" Betriebssystem für Rechner mit 8080, 8085 und Z80-Mikroprozessoren
Bekanntlich wurde ja CP/M86 (für den 8086) nicht fertig und eine Firma programmierte es für die neuen Prozessoren als QDOS nach. Dann kamen IBM und der Große Billyboy Gates-Jetzt-Endlich!
Ab MS-DOS Version 2 gab es dann ja auch Unterverzeichnisse - inklusive "aktuelles Verzeichnis".
Auf diesen, für ein Programm ausgelegten Systemen hatte man ja keine Probleme - es lief ja nur das aktuelle Programm.
Leider hat man das Ganze kontinuierlich weitergeführt. Damit laufen MS-DOS-Programme in der Regel auch unter Windows XP, aber es gibt das bekannte Problem mit der Verzeichnis-Lotterie.

Die Sache mit den Laufwerksnummern kenne ich nämlich noch von Turbo-Pascal für CP/M. Erschwerend kommt ja noch hinzu, daß es einige Funktionen mit 0=aktuell, 1=A, 2=B usw. gibt, andere rechnen 0=A, 1=B usw.!
Nach geringfügigen Anpassungen (Umlaute werden anders codiert, Variablentypen, ggf. vorbelegte Parameter und Overload-Möglichkeit) sind die alten Sourcen z.B. für Laufwerks-Nummer errechnen noch immer brauchbar.

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz