![]() |
Speichergröße von Datenträgern auslesen
Hallo,
habe eine Frage zum auslesen der Speichergröße von Datenträgern. Habe bereits eine Bespiel Code gefunden.
Delphi-Quellcode:
Meine Frage ist nun welche Rolle hier "(Ord(s) - 64" spielt? Kann man dies nicht anders lösen? Bsp: intostr oder ähnlichem?
procedure TForm1.Button1Click(Sender: TObject);
var freeSpace, totalSpace: Double; s: Char; begin // Drive letter // Laufwerksbuchstabe s := 'D'; freeSpace := DiskFree(Ord(s) - 64); totalSpace := DiskSize(Ord(s) - 64); label1.Caption := Format('Free Space: %12.0n', [freeSpace]); Label2.Caption := Format('Total Space: %12.0n', [totalSpace]); Label3.Caption := IntToStr(Round((totalSpace - freeSpace) / totalSpace * 100)) + ' Percent used.'; end; Gruß Edit: Würde gerne die Werte ohne z.B 'Free Space: 159.165.487.457' im Label Feld ausgegeben. Nehme ich das Format('Free Space: %12.0n', [freeSpace]) raus und ersetze dies durch label1.Caption :=freeSpace; erhalte ich vom Compiler die Meldung: "Inkompatible Typen: 'String and Double" |
Re: Speichergröße von Datenträgern auslesen
Du musst den Laufwerksbuchstaben als Type Byte übergeben. Deshalb wird hier die Funktion Ord angewendet.
|
Re: Speichergröße von Datenträgern auslesen
Ord() ermittelt den ASCII-Code eines Zeichens, 65 ist der Code für 'a'. Ord(s) - 64 ergibt also die Nummer des Buchstabens (1 für 'a')
|
Re: Speichergröße von Datenträgern auslesen
Zitat:
|
Re: Speichergröße von Datenträgern auslesen
Hat jemand noch eine Idee wie ich das Problem mit meiner Formatierung beseitgen kann?
|
Re: Speichergröße von Datenträgern auslesen
DiskFree() erwartet 1 für Laufwerk a: und nicht 65
|
Re: Speichergröße von Datenträgern auslesen
Zitat:
|
Re: Speichergröße von Datenträgern auslesen
Warum liefern deine Funktionen eigentlich keine Ganzzahl zurück, sondern einen Wert vom Typ Double? Gibt es auch halbe und viertel Bytes?
|
Re: Speichergröße von Datenträgern auslesen
Zitat:
Delphi-Quellcode:
label1.Caption := Format('%12.0n', [freeSpace]);
|
Re: Speichergröße von Datenträgern auslesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz