Entwickler-Ecke
Sonstiges (Delphi) - Festplattenspeicher ermitteln
hibbert - Mo 04.11.02 17:39
Titel: Festplattenspeicher ermitteln
hallo,
ich habe eine code im internet gefunden, der mir den festplattenspeicher und weiteres anzeigt.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var freeSpace, totalSpace: Double; s: Char; begin // Drive letter // Laufwerksbuchstabe s := 'C';
freeSpace := DiskFree(Ord(s) - 64); totalSpace := DiskSize(Ord(s) - 64); label3.caption:=Format('Freier Speicherplatz: %12.0n', [freeSpace])+chr(13)+Format('Verfügbarer Speicherplatz: %12.0n', [totalSpace]); end; |
so, dieser code, so weit ich das richtig gesehen haben, gibt mir nur die größe in k an ! ich möchte aber, dass die angezeigte größe in MB angeben wird.
ich möchte allerdings kein kompliziertes rechenverfahren haben.
mfg hibbert
Anonymous - Mo 04.11.02 18:27
So auf die Schnelle würde ich sagen
oder bei Byte
Luca - Mo 04.11.02 18:31
Hallo,
Die Funktion DiskFree und DiskSize geben dir die Größe in Byte an. (siehe Delphi Help)
Um dann Bytes in MBytes um zuwandlen geht es so
Quelltext
1:
| freespace := DiskFree(Drive) div 1024 div 1024 |
Beim ersten div bekomms du KByte beim zweiten div MByte
Anonymous - Mo 04.11.02 21:30
Wenn du div benutzt, dann werden die Nachkommastellen abgeschnitten. 0.99MegaByte ist fast ein MegaByte.
Beispiel:
x := (999 * 1024 * 1024) - 1;
//999 MegaByte minus 1 Byte
Rechnung 1:
y := x / sqr(1024); // Ergebnis = 998,99999904632568359375
Rechnung 2:
y := x div 1024 div 1024; // Ergebnis = 998
hibbert - Di 05.11.02 16:01
hää??
irgendwie vesteh ich garnichts mehr.
kann mir jemand vielleicht ein beispiel geben, denn wenn ich den code
Quelltext
1:
| freespace := DiskFree(Drive) div 1024 div 1024 |
einfach dran hänge, dann funzt nichts mehr!!
please hlp me !!
mfg hibbert
LCS - Di 05.11.02 19:27
Hi
in deinem ersten Posting
| hibbert hat folgendes geschrieben: |
Quelltext 1:
| freeSpace := DiskFree(Ord(s) - 64); |
|
und jetzt:
| hibbert hat folgendes geschrieben: |
Quelltext 1:
| freespace := DiskFree(Drive) div 1024 div 1024 |
|
Siehst du den Unterschied? Das liegt nicht an der Division sondern an deinem Übergabeparameter. DiskFree übernimmt keinen Laufkwerksbuchstaben sondern eine Zahl
| Borland hat folgendes geschrieben: |
DiskFree liefert die Anzahl der freien Bytes auf dem mit Drive angegebenen Laufwerk (0 = aktuelles Laufwerk, 1 = A, 2 = B usw.).
Bei einer ungültigen Laufwerksnummer wird -1 zurückgegeben.
|
Wenn du Laufwerk C testen willst, musst du als Parameter 3 übergeben. Deshalb die Parameterübergabe mit Ord(s) - 64.
Gruss Lothar
hibbert - Di 05.11.02 20:03
Danke,
da war ich wohl mal wieder blind, hatte nämlich viel stress !
sorry meine eigene dummheit! :oops:
:lol: mfg hibbert
ps auf
| Zitat: |
| sorry meine eigene dummheit! |
muss keiner antworten ! :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!