Ich bin die Sache so angegangen das ich einen string mit crc32 gehashed habe. Das Ergebnis ist ein DWord mit 10 stellen. Im oberen Code wird daraus ein 64 bit Unisgned Integer gemacht. Hier fehlen mir die Kenntnisse. Wie bilde ich das in Delphi ab? Im Grunde möchte ich also die gameid ermitteln.
Gruß
Irgendwie so in der Art?
Delphi-Quellcode:
var
Hash: IdHashCRC.TIdHashCRC32;
uniqueName: string;
gameID: string;
HashedValue: UInt32;
top: UInt64;
begin
uniqueName := 'Beispiel_Name';
Hash := TIdHashCRC32.Create;
try
HashedValue := Hash.HashValue(uniqueName);
finally
Hash.Free;
end;
top := HashedValue or $80000000;
top := top shl 32 or $02000000;
gameID := System.SysUtils.IntToHex(top, 10);
gameID := System.SysUtils.LowerCase(gameID);
end;
Ggf. musst du ein mit den Anzahl der Stellen bei der IntToHex-Funktion experimentieren.
Die Verwendung von LowerCase deswegen, weil die FormatUint-Funktion Kleinbuchstaben zurückliefert :
https://golang.org/pkg/strconv/#FormatUint