AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bytes in GB formatieren?

Ein Thema von mlspider · begonnen am 22. Feb 2007 · letzter Beitrag vom 22. Feb 2007
Antwort Antwort
Seite 1 von 3  1 23      
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:04
Ich benötige die Ausgabe des freien Speicherplatzes eines gewählten Laufwerkes. Erledigt wird dies wie folgt:

Delphi-Quellcode:
function GetDiskSize(drive: Char; var free_size, total_size: Int64): Boolean;
var
RootPath: array[0..4] of Char;
RootPtr: PChar;
current_dir: string;
begin
RootPath[0] := Drive;
RootPath[1] := ':';
RootPath[2] := '\';
RootPath[3] := #0;
RootPtr := RootPath;
current_dir := GetCurrentDir;
if SetCurrentDir(drive + ':\') then
begin
GetDiskFreeSpaceEx(RootPtr, Free_size, Total_size, nil);
SetCurrentDir(current_dir);
Result := True;
end
else
begin
Result := False;
Free_size := -1;
Total_size := -1;
end;
end;
Der Aufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
free_size, total_size: Int64;
begin
s := ExtractFileDrive(ParamStr(0));
showmessage(s[1]);


if GetDiskSize(s[1], free_size, total_size) then

ShowMessage('free space =' +
IntToStr(free_size) + #13 + 'total size=' +
IntToStr(total_size))
else
ShowMessage('Keine Disk im Laufwerk!');
end;
liefert das Ergebnis in Byte. Ich möchte beide Werte in GB formatieren. Aber wie?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:05
N paar (3) mal duch 1024 teilen!?

(und evtl. mit RoundTo noch n bissl "Pimpen")
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#3

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:07
Bytes / 1024 = KBytes
KBytes / 1024 = MBytes
MBytes / 1024 = GBytes

x Bytes / 1024 / 1024 / 1024 = y GBytes
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:08
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB

Stahli

PS: Ich war zu langsam, aber auch gut
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:10
*am langsamsten bin*

2^10=Kilo
2^20=Mega
2^30=Giga
usw...
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:13
Delphi-Quellcode:
IntToStr(free_size div 1024 div 1024 div 1024) + #13 + 'total size=' +
IntToStr(total_size div 1024 div 1024 div 1024))
gibt mir zu ungenaue Angabe. Wie soll ich RoundTo anwenden?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#7

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:20
Div schmeisst ja auch die Nachkommastellen weg - und wenn Du dreimal durch ~1000 Teilst wird die Zahl kleiner und damit werden die Nachkommawerte wichtiger.

Teile doch einfach echt mit:
free_size / (3* 1024) und benutze FloatToString um den Wert dann mit ein paar Nachkommstellen zu formatieren.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:25
Delphi-Quellcode:
ShowMessage('free space =' +
IntToStr(free_size / (3* 1024)) + #13 + 'total size=' +
IntToStr(total_size))
gibt einen Compilerfehler aus:

Es gibt keine überldene Version von IntToStr, die man mit diesen Argumenten aufrufen kann.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:26
Zitat von Phoenix:
und benutze FloatToString um den Wert dann mit ein paar Nachkommstellen zu formatieren.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Bytes in GB formatieren?

  Alt 22. Feb 2007, 13:29
Zitat von Phoenix:
Teile doch einfach echt mit:
free_size / (3* 1024)
Warum soll er durch 3072 teilen?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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