Diagnose program NY

Tags:    delphi

Nu kom jeg lige til at lukke den sidste tråd lidt for hurtigt, så jeg udlover endnu 20 point, til den som kan svare på om man kan gøre sådan at den regner det om til MB i stedet for bytes.

Mvh
Jesper



9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Et forslag til en lidt mere advanceret løsning kunne være følgende kode. for knap evented.

Afhængig af hvor meget plads der er fri udskrives henholdsvis i bytes, kb, mb eller gb. Bemærk at ved bytes, kb og mb udskrives kun heltal (F.eks 125kb) , mens der ved gb udskrives som komma tal med to decimaler (F.eks 1,45gb).


procedure TForm1.Button1Click(Sender: TObject);
var
Space : Int64;
begin
Space:=DiskFree(3); // Hent fri plads på C:

If (Space < 1024) then
Label1.Caption:=IntToStr(Space)+' Bytes' // Under 1kb, vi udskriver i bytes
else
If (Space < (1024*1024)) then
Label1.Caption:=IntToStr(Space div 1024)+'KB' // Over 1kb, under 1mb, vi udskriver i kb
else
If (Space < (1024*1024*1024)) then
Label1.Caption:=IntToStr(Space div (1024*1024))+'MB' // Over 1mb, under 1gb, vi udskriver i mb
else
Label1.Caption:=Format('%f', [(Space / (1024*1024*1024))])+'GB'; // Over 1gb, vi udskriver i gb
end;


Mvh Kristian

PS. Formatteringen med indrykning forsvinder tilsyneladende på forum'et. Håber du kan forstå det alligevel.[Redigeret d. 03/04-02 05:49:21 af Kristian Leonhard]



User
Bruger #24 @ 02.04.02 07:51
eh.. mb = bytes / (1024*1024); ??



User
Bruger #24 @ 02.04.02 07:57
ps: det er hvis du bruger kibi og mibi .. med kilo og mega er det mb = bytes/1000000;



ps: det er hvis du bruger kibi og mibi .. med kilo og mega er det mb = bytes/1000000;

Mvh
Jesper

Jeg har hvor mange byte det er, jeg skal bare have et stykke kode der regner det om til megabytes. Det er et program som tjækker harddisk plads med denne kode

label4.Caption := IntToStr(DiskSize(3));

Og det skulle den gerne lave om til megabytes. Lige nu skriver den det i bytes. Harddisken er på 10 gb og det skriver den som 10476945408.

Håber i forstår



User
Bruger #24 @ 02.04.02 10:46
gb og det skriver den som 10476945408.

for at omregne bytes til mib siger du : mb = 10476945408 / (1024*1024) = 9991,593...

hvis du vil have gib siger du gb = 10476945408 / (1024*1024*1024) = 9,75..

så kan du sætte nogle grænser for, hvornår den skal skrive størrelsen i bytes, kibi, mibi, gibi etc...

self skal du lave 1024*1024 om til en konstant.. :)

MVH
Daniel




gb og det skriver den som 10476945408.

for at omregne bytes til mib siger du : mb = 10476945408 / (1024*1024) = 9991,593...

hvis du vil have gib siger du gb = 10476945408 / (1024*1024*1024) = 9,75..

så kan du sætte nogle grænser for, hvornår den skal skrive størrelsen i bytes, kibi, mibi, gibi etc...

self skal du lave 1024*1024 om til en konstant.. :)

MVH
Daniel


Hvad er komandoen til det? Eller skal jeg bare skrive det rent ind? I så fald hvor?

Mvh
Jesper





User
Bruger #24 @ 02.04.02 15:33

Hvad er komandoen til det? Eller skal jeg bare skrive det rent ind? I så fald hvor?

Mvh
Jesper

nu er pascal ikke lige mig.. eller delphi... men du skal nok have en float

var:

float mb;


mb := <din var med størrelsen i bytes> / (1024.0*1024.0);

noget i den stil




Er der ikke nogen som ligger inde med eller gider og lave et eksempel, for jeg fatter ikke en brik.

Mvh
Jesper



Er der ikke nogen som ligger inde med eller gider og lave et eksempel, for jeg fatter ikke en brik.

Mvh
Jesper


Der vil være et sted hvor der står:

<pre>
var
Form1: TForm1;
</pre>

Lige under det skriver du:

<pre>
MB: Integer;
</pre>

Så skriver du i din knap:

<pre>
MB := DiskFree(3) / (1024*1024);
Label1.Caption := IntToStr(MB);
</pre>

Emil Melgaard
<a href="mailto:emil.melgaard@private.dk">emil.melgaard@private.dk</a>



t