Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!
Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.
Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.
[Opgelost] Pascal - Grote hexadecimale nummers in een string omzetten naar integer
Delphi, Lazarus, Free Pascal
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter
6 juni 2014 18:14
Tijdens het schrijven van ApplePi-Baker, had ik een functie nodig om een groot hexadecimaal nummer in een string om te zetten naar een integer (int64). Omdat het wat moeite koste dacht ik dat anderen hier misschien ook profijt van zouden kunnen hebben.
De functie neemt een hexadecimaal nummer in een string en geeft de integer waarde als int64 terug. Deze functie is een aangepaste versie van een functie die ik in het Lazarus Pascal Forum vond.
function LongHexToDec(Str: string): Int64;
var
Counter : Integer;
DecValue: Int64;
begin
Result :=0;
DecValue:=1;
Str :=AnsiUpperCase(Str);
for Counter:=Length(Str) downto 1 do
begin
case Str[Counter] of
'1'..'9': Result:=Result+(Ord(Str[Counter])-Ord('0'))*DecValue;
'A'..'F': Result:=Result+(Ord(Str[Counter])-Ord('A')+10)*DecValue;
end;
DecValue:=DecValue shl 4;
end;
end;