![]() |
Re: Höchster Wert aus Registry
:( So komm ich nie vom Fleck, irgendwie habe ich keinen blassen Schimmer wieso jetzt nix mehr geht :( Findet niemand den Fehler?
|
Re: Höchster Wert aus Registry
Hallo,
der Laufzeitfehler wird ausgegeben, weil beim Versuch, einen Stringinhalt in einen Integerwert zu wandeln, der zulässige Wertebereich für Integer (-2147483648..2147483647) verlassen wurde. Du könntest nun alles auf Cardinal oder Int64 umstellen und hättest damit einen größeren Wertebereich zur Verfügung. Wenn die Schlüsselnamen nur Ziffernfolgen (ohne führende Nullen) sind, könntest du aber auch bei Strings bleiben und die Methode ![]()
Delphi-Quellcode:
Die Funktion CompareKeys würde dann so aussehen:
var
Keys : TStringList; Reg : TRegistry; begin ... Reg.GetKeyNames (Keys); Keys.CustomSort (CompareKeys); ShowMessage ('Maximum: ' + Keys[0]); ... end;
Delphi-Quellcode:
Gruß Hawkeye
function CompareKeys (List: TStringList; Index1, Index2: Integer): Integer;
var Key1, Key2 : string; begin Key1 := List[Index1]; Key2 := List[Index2]; // zunächst nur die Längen vergleichen Result := Length(Key2) - Length(Key1); if (Result = 0) then // bei gleicher Stringlänge zeichenweise vergleichen Result := CompareStr(Key2, Key1); end; |
Re: Höchster Wert aus Registry
Zitat:
|
Re: Höchster Wert aus Registry
UPUPUPUPUP
Kennt noch keiner Lösung?? EDIT: Kann es sein, dass bei der oben genannten Funktion nur zwei Zahlen verglichen werden?? |
Re: Höchster Wert aus Registry
Zitat:
|
Re: Höchster Wert aus Registry
Hallo kaschte,
Zitat:
Zitat:
Da du offenbar noch keine Lösung für dein Problem gefunden hast: kannst du eine Menge von Einträgen angeben, für die ein falsches Ergebnis ermittelt wird? Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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