AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Speichergröße von Datenträgern auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Speichergröße von Datenträgern auslesen

Ein Thema von mind87 · begonnen am 17. Mai 2008 · letzter Beitrag vom 17. Mai 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#21

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:03
Zitat:
Meldung: 'Format'%12.On' ungültig oder nicht kompatibel mit Argument'. ...
12.0 ... Null (Zahl) und nicht O (Buchstabe)

Zitat:
werden Int-Typen nicht implizit in Float-Typen umgewandelt? Das heißt, Int64 lässt sich problemlos Double verwenden.
Nein, "n" erwartet explizit einen Real-Typ.
Format('%12.0n', [freeSpace / 1])
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#22

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:07
Zitat von Luckie:
Dann müsste es schon bei der Variablenzuweisung einen Fehler geben.
Das glaube ich nicht ganz. Ich bin der Meinung, dass Ihn das Format ein wenig aus der Bahn schmeißt und er einige Typen durcheinander schmeisst.

@mind87:
Wie sieht denn jetzt Dein Code aus und hast Du da noch Fehler drin ? Wenn ja, welche und was möchtest Du erreichen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#23

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:11
Hi,

das bezog sich nicht auf Format mit %f oder %n oder so, sondern auf Luckies Aussage

Zitat:
Dann müsste es schon bei der Variablenzuweisung einen Fehler geben.
Wegen Zuweisung Int64 --> Double bei

[dqlphi]freeSpace := DiskFree(Ord(s) - 64); [/delphi]

Bei Format ist es etwas anderes. Das meinte ich aber gar nicht.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
mind87

Registriert seit: 15. Mai 2008
19 Beiträge
 
#24

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:13
Zitat von RWarnecke:
Zitat von Luckie:
Dann müsste es schon bei der Variablenzuweisung einen Fehler geben.
Das glaube ich nicht ganz. Ich bin der Meinung, dass Ihn das Format ein wenig aus der Bahn schmeißt und er einige Typen durcheinander schmeisst.

@mind87:
Wie sieht denn jetzt Dein Code aus und hast Du da noch Fehler drin ? Wenn ja, welche und was möchtest Du erreichen ?
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
 var
  freeSpace, totalSpace: double;
  s,drive: Char;
  total:integer;
begin
case combobox1.ItemIndex of
0:
begin
drive:='C';
end;
1:
begin
drive:='D';
end;
2:
begin
drive:='E';
end;
3:
begin
drive:='F';
end;
4:
begin
drive:='G';
end;
5:
begin
drive:='H';
end;
end;
  s:=drive;

  totalSpace:= DiskSize(Ord(s) - 64);
  freeSpace:= DiskFree(Ord(s) - 64);

  Edit_gspeicher.text:= Format('%12.0n', [totalSpace]);
  Edit_fspeicher.text:= Format('%12.0n', [freeSpace]);
  Label6.Caption := IntToStr(Round((totalSpace - freeSpace) / totalSpace * 100)) +
    ' Percent used.';
  total:=round((totalspace-freespace)/totalspace*100);
  progressbar1.position:=total;
end;
Solange ich totalspace und freespace nicht integer setze, funktioniert die Ausgabe mit den Tausenderstellen (%12.0n). Macht doch keine Probleme das ich die in double verwende oder?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:16
Also dein Code ist sehr srtange, warum nicht
totalSpace:= DiskSize( combobox1.ItemIndex +3); ?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#26

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:19
Das sieht doch gut aus, warum möchtest Du jetzt die Werte freespace und totalspace auf Integer setzen ? Zumal Integer ja der falsche Typ wäre. Denn die Funktionen DiskSize und DiskFree aus der Unit SysUtils den Type Int64 zurückgeben. Deshalb geht Integer nicht.

Der Integer geht nur von -2147483648 bis 2147483647. Alles was darüber hinausgeht, muss Du für ganze Zahlen mit Int64 deklarieren.

Ich lege es Dir Nahe, mal in der Online-Hilfe von Delphi nachzulesen, was es für Variablen-Typen gibt.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mind87

Registriert seit: 15. Mai 2008
19 Beiträge
 
#27

Re: Speichergröße von Datenträgern auslesen

  Alt 17. Mai 2008, 21:32
Zitat von RWarnecke:
Das sieht doch gut aus, warum möchtest Du jetzt die Werte freespace und totalspace auf Integer setzen ? Zumal Integer ja der falsche Typ wäre. Denn die Funktionen DiskSize und DiskFree aus der Unit SysUtils den Type Int64 zurückgeben. Deshalb geht Integer nicht.

Der Integer geht nur von -2147483648 bis 2147483647. Alles was darüber hinausgeht, muss Du für ganze Zahlen mit Int64 deklarieren.

Ich lege es Dir Nahe, mal in der Online-Hilfe von Delphi nachzulesen, was es für Variablen-Typen gibt.
Luckie hatte das eben angedeutet. Von daher war ich mir nicht sicher ob integer oder double bzw. int64.

Danke an alle, für die erstklassige und schnelle Hilfe. Echt klasse

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 00:08 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