Pagina1 van 1
Forum

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.



Deel:
Meldingen
Alles wissen

[Opgelost] Pascal - Grote hexadecimale nummers in een string omzetten naar integer

1 Berichten
1 Gebruikers
0 Reactions
1,181 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter  

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;               


   
BeantwoordenCiteren
Deel: