Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listview sortieren (Dateigroesse und Speed) (https://www.delphipraxis.net/57626-listview-sortieren-dateigroesse-und-speed.html)

lucius 24. Nov 2005 13:04

Re: Listview sortieren (Dateigroesse und Speed)
 
Hmmm marabu,
Zitat:

qualifiziere den Funktionsaufruf einfach mal so: SysUtils.StrToFloat()
funzt auch nit, habe die andere komplette Sortier Function mal raus geworfen.
Aber der Fehler tritt noch immer auf.

marabu 24. Nov 2005 13:09

Re: Listview sortieren (Dateigroesse und Speed)
 
Stimmt es denn, dass du D7 verwendest? Was sagt denn Code Insight, wenn du die öffnende Klammer hinter StrToFloat() schreibst?

lucius 24. Nov 2005 13:12

Re: Listview sortieren (Dateigroesse und Speed)
 
Ja marabu ich verwende D7 und ich weiss nicht ob ich an der richtigen Stelle SysUtils.StrToFloat() eingetragen habe.
Muss doch in der Function StrToBytes rein?
Der Code Insight sagt dasselbe overload.

marabu 24. Nov 2005 13:18

Re: Listview sortieren (Dateigroesse und Speed)
 
Vorletzter Versuch: halte die linke CTRL Taste gedrückt und klicke mal StrToFloat() an. Die IDE müsste dir dann die Stelle zeigen, an der die vermeintliche Funktion definiert ist. Das sollte dann die Unit SysUtils sein und die zweite Funktion ab dem Cursor zeigt dir, dass ich die Funktion richtig überladen habe.

lucius 24. Nov 2005 13:22

Re: Listview sortieren (Dateigroesse und Speed)
 
Stimmt marabu beim druecken der CTRL Taste und auf StrtoFloat steht das in der Unit SysUtils:
Delphi-Quellcode:
function StrToFloat(const S: string): Extended;
begin
  if not TextToFloat(PChar(S), Result, fvExtended) then
    ConvertErrorFmt(@SInvalidFloat, [S]);
end;

function StrToFloat(const S: string;
  const FormatSettings: TFormatSettings): Extended;
begin
  if not TextToFloat(PChar(S), Result, fvExtended, FormatSettings) then
    ConvertErrorFmt(@SInvalidFloat, [S]);
end;

marabu 24. Nov 2005 13:36

Re: Listview sortieren (Dateigroesse und Speed)
 
Ich bin misstrauisch - hast du die Funktion so abgeändert?

Delphi-Quellcode:
// function type changed for better StrToFloat() experience...
function StrToBytes(s: string; fs: TFormatSettings; decimal: boolean = true): extended;
var
  sValue: string;
  factor: integer;
begin
  if decimal
    then factor := 1000
    else factor := 1024;
  sValue := ParseStr(s, ' ');
  Result := SysUtils.StrToFloat(sValue, fs); // watch this !
  case s[1] of
    'G': Result := Result * factor * factor;
    'K': Result := Result * factor;
  end;
end;
Hier noch die Funktion ParseStr() für alle die sie noch nicht gefunden haben:

Delphi-Quellcode:
function ParseStr(var s: string; delimiters: string; purge: boolean = true): string;
var
  i: integer;
begin
  i := 0;
  while (i < Length(s)) and (Pos(s[Succ(i)], delimiters) = 0) do
    Inc(i);
  Result := Copy(s, 1, i);
  Delete(s, 1, i + Ord(purge));
end;
marabu

lucius 24. Nov 2005 13:39

Re: Listview sortieren (Dateigroesse und Speed)
 
Genau so hab ich es gemacht marabu.

dahead 24. Nov 2005 13:44

Re: Listview sortieren (Dateigroesse und Speed)
 
weshalb willst du denn den formatierten Größen/Geschwindigkeits String wieder in einen Int-Wert konvertieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.
Seite 2 von 2     12   

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