Ich bin heute auf Wolfgang Ehrhardts CRC- und Hash-Routinen gestoßen. Die sollen wohl wahnsinnig schnell sein, weswegen ich mich dafür interessiere.
Wieso findet der Compiler die
Unit nicht?
Ein Beispielprojekt mit allen benötigten Units befindet sich im Anhang. Bekommt ihr das Projekt kompiliert?
Link zu Wolfgang Ehrhardts Units:
http://www.wolfgang-ehrhardt.de/crchash_de.html
Das Problem liegt darin, daß Delphi ab XE8 eine eigene Hash-
Unit hat, und durch nichts zu überzeugen ist, daß es die
Unit im Arbeitsverzeichnis oder entsprechend der Uses-Liste verwendet soll. Ist bekannt, siehe hier
http://www.delphipraxis.net/190245-u...nd-hash-2.html und
http://www.delphipraxis.net/184810-x...stem-hash.html. Aber selbst dann kann man deinen Code nicht übersetzen (zB mit D18) weil er einige Fehler hat. Eine korrigierte Funktion sieht so aus
Delphi-Quellcode:
function SHA1Text(const s: string): string;
var
Context: THashContext;
SHA256Digest: Hash.TSHA256Digest;
begin
SHA256.SHA256Init(Context);
SHA256.SHA256Update(Context, pChar(s), length(s));
SHA256.SHA256Final(Context, SHA256Digest);
Result := Mem_Util.HexStr(@SHA256Digest, SizeOf(SHA256Digest));
end;
und sollte dann sinnvollerweise SHA256Text heißen. Ich kann selbst dann nicht übersetzen, weil die res-Datei fehlt.
Gruß Gammatester