AGB  ·  Datenschutz  ·  Impressum  







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

KB zu Bytes umwandeln

Ein Thema von DrD0j0 · begonnen am 2. Jun 2011 · letzter Beitrag vom 3. Jun 2011
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 13:39
Zunächst wäre mal zu klären, was der Punkt bedeutet: Ist er ein Tausendertrennzeichen oder ein Dezimaltrennzeichen(Komma)?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#2

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 13:42
Wenn es sich um einen Tausenderseperator handelt, dann einfach den Punkt durch einen Leerstring ersetzen.

Bei einem Fließkomma statt Int in einen Float umwandeln, der Punkt sollte dabei einfach bleiben wie er ist.

Ich gehe aber davon aus, dass es ein Tausenderseperator ist.

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
DrD0j0

Registriert seit: 1. Mai 2011
10 Beiträge
 
#3

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 14:20
Vielen Dank für eure Antworten
Also es handelt sich um ein Fließkomma.
Ich habe mir folgende Funktion gebastelt:
Delphi-Quellcode:
function Kb2Byte(SrcKb: String): Int64;
var
  tmpSize: Double;
begin
  if TryStrToFloat(SrcKb, tmpSize) = True then
  begin
    Result := tmpSize*1024;
  end
  else begin
    Result := 0;
  end;
end;
Leider hapert es aber noch bei "Result := tmpSize*1024;".
Den Wert muss ich irgendwie noch in Int64 umwandeln...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.785 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 14:23
Hallo,

wenn Du den Wert in Byte vorliegen hast, dann kann es keine Nachkommastelle mehr geben.
Du kannst diese also einfach abschneiden z.B. mit trunc.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DrD0j0

Registriert seit: 1. Mai 2011
10 Beiträge
 
#5

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 14:43
Vielen lieben Dank für die schnelle und kompetente Hilfe
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#6

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 14:45
Delphi-Quellcode:
function Kb2Byte(SrcKb: String): Int64;
var tmpSize: Double;
begin
  Result := 0;
  if TryStrToFloat(SrcKb, tmpSize) then
    Result := Trunc(tmpSize *1024);
end;
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: KB zu Bytes umwandeln

  Alt 2. Jun 2011, 14:56
Bin ich der einzige, der der Meinung ist, dass hier eine Exception ausgelöst werden sollte, wenn die Konvertierung fehlschlägt? Man sucht den Fehler nämlich hinterher u.U. ewig, wenn das Programm aus unerfindlichen Gründen bei manchen Dateien die falsche Dateigröße anzeigt...

Also wenn schon, dann so:
Delphi-Quellcode:
function Kb2Byte(SrcKb: String): Int64;
var tmpSize: Double;
begin
  if TryStrToFloat(SrcKb, tmpSize) then
    Result := Trunc(tmpSize*1024)
  else
    raise EConvertError.CreateFmt('"%s" is not a valid file size', [SrcKb]);
end;
Aber abgesehen davon, ist Aphtons Lösung die korrekte, da sie mit einbezieht, dass die Nachkommastellen nur bis 999 gehen, und nicht bis 1024.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:01 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