Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mo 04.11.02 17:39 
hallo,
ich habe eine code im internet gefunden, der mir den festplattenspeicher und weiteres anzeigt.
ausblenden 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

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.11.02 18:27 
So auf die Schnelle würde ich sagen

ausblenden Quelltext
1:
KiloByte / 1024					


oder bei Byte

ausblenden Quelltext
1:
Byte / Sqr(1024)					
Luca
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ausblenden Quelltext
1:
freespace := DiskFree(Drive) div 1024 div 1024					

Beim ersten div bekomms du KByte beim zweiten div MByte
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 05.11.02 16:01 
hää??
irgendwie vesteh ich garnichts mehr.
kann mir jemand vielleicht ein beispiel geben, denn wenn ich den code

ausblenden Quelltext
1:
freespace := DiskFree(Drive) div 1024 div 1024					


einfach dran hänge, dann funzt nichts mehr!!

please hlp me !!

mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Di 05.11.02 19:27 
Hi
in deinem ersten Posting
hibbert hat folgendes geschrieben:

ausblenden Quelltext
1:
freeSpace  := DiskFree(Ord(s) - 64);					


und jetzt:
hibbert hat folgendes geschrieben:

ausblenden 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

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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:

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej