Witam. Mam problem z przepisaniem jeden z funkcji (C#). Jej kod źródłowy to znajduję się na pierwszej stronie w wątku: [C#]Tajemnicza funkcja
W pierwszym poście jest zapisana w QT, a na dole strony znajduję się jej translacja do C#. Próbuje ją przepisać dla Delphi z marnym skutkiem:
function FDigest(input: string): string;
const
idx: array [0..4] of integer = ($e, $3, $6, $8, $2);
mul: array [0..4] of integer = (2, 2, 5, 4, 3);
add: array [0..4] of integer = ($0, $d, $10, $b, $5);
var
v, t, a, m, i, j: Integer;
b, tmp: String;
begin
//input := 'f42a8693b3792ff81ac494f5dd15b9c3'; result := '2a541';
Result := '';
if Length(input) <> 32 then Exit;
for j := 0 to 4 do
begin
a := add[j];
m := mul[j];
i := idx[j];
t := a + strtoint('$' + copy(input, i, 1));
v := strtoint('$' + copy(input, t, 2));
tmp := format('%x', [(v * m) mod 16]);
b := b + tmp;
end;
Result := b;
end;
Jedna z linii jest zakomentowana, można ją odhaczyć w celach diagnostycznych. Chodzi o to, że dla podanego hasha (tego z komentarza) funkcja powinna zwracać ciąg 2a541, a tymczasem nie wiadomo czemu zwraca mi 00bc9.
Pomoże ktoś ?
dodanie znacznika <code class="delphi"> - fp