Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Byte in Mega- und Kilobyte umwandeln (https://www.delphipraxis.net/45561-byte-mega-und-kilobyte-umwandeln.html)

tobias2207 8. Mai 2005 15:32


Byte in Mega- und Kilobyte umwandeln
 
Hallo liebe Leser,

ich suche eine function oder code welches mir ein Integer Attribut in welchem die Grösse einer Datei in Bytes angegeben ist und dieser mir diesen in einen String umgewandelt in KB,MB,GB der Grössen (also ähnlich wie ein Explorer).

hab das jetzt schon mehrmals versucht aber immer wieder geschweitert und bevor ich stunden mit selbprogrammieren verschwende (leider keine zeit) wollte ich mal horchen ob es da nicht schon etwas gibt an dem ich mich orientieren kann..

vielen dank fürs lesen und helfen schon mal im voraus..


mfg

tobias

Die Muhkuh 8. Mai 2005 15:33

Re: Byte in Mega- und Kilobyte umwandeln
 
Delphi-Quellcode:
function ConvertBytes(Size: Integer): ShortString;
  function ConvertToKB(Size: Integer): Integer;
  begin
    Result := Size div 1024;
  end;

  function ConvertToMB(Size: Integer): Integer;
  begin
    Result := Size div (1024 * 1024);
  end;

  function ConvertToGB(Size: Integer): Integer;
  begin
    Result := Size div (1024 * 1024 * 1024);
  end;
begin
  if Size > 1024 * 1024 * 1024 then
    Result := IntToStr(ConvertToGB(Size)) + ' GB'
  else
  if Size > 1024 * 1024 then
    Result := IntToStr(ConvertToMB(Size)) + ' MB'
  else
  if Size > 1024 then
    Result := IntToStr(ConvertToKB(Size)) + ' KB'
  else
    Result := IntToStr(Size) + ' Bytes';
end;
[edit] Musst nur die Größe der Datei angeben [/edit]
[edit2] Die Größe kannst du so bekommen:
Delphi-Quellcode:
function GetFileSize(Filename: String): Int64;
var
  FS: TFileStream;
begin
  FS := TFileStream.Create(Images.Items[I], fmOpenRead);
  try
    Result := FS.Size;
  finally
    FS.Free;
  end;
end;
Ein Beispiel aufrufe wäre:

Delphi-Quellcode:
StringVar := ConvertBytes(GetFileSize('C:\Test.txt'));
[/edit2]

mirage228 8. Mai 2005 15:36

Re: Byte in Mega- und Kilobyte umwandeln
 
Ich werfe mal diese Funktion in den Raum:

Delphi-Quellcode:
// by Luckie
function FormatDiskSpace(DiskSpace: Int64): string;
begin
  case DiskSpace of
    0..1023: Result := Format('%d Byte', [DiskSpace]);
    1024..1048575: Result := Format('%2n KB', [DiskSpace / 1024]);
    1048576..1073741823: Result := Format('%2n MB', [DiskSpace / 1024 / 1024]);
  else
    Result := Format('%2n GB', [DiskSpace / 1024 / 1024 / 1024]);
  end;
end;
mfG
mirage228

Aenogym 8. Mai 2005 15:36

Re: Byte in Mega- und Kilobyte umwandeln
 
hi,

dazu brauchts keine funktion, einfache mathematik:

Delphi-Quellcode:
var byte: integer;
    kilobyte, megabyte, gigabyte: double;
kilobyte := byte / 1024;
megabyte := kilobyte / 1024;
gigabyte := megabyte / 1024;
das war's,

aenogym

tobias2207 8. Mai 2005 15:38

Re: Byte in Mega- und Kilobyte umwandeln
 
hi leute,

vielen dank für die echt schnellen antworten von euch. das waren ja nur wenige sekunden :dancer: , echt starke leistung..

werde es gleich mal mit den 3 varianten ausprobieren und schauen woran ich versagt hab.


nochmals vielen dank an euch und delghi praxis. schönen sonntag noch..


MfG

tobias


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 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