Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ELF-Hash mit Unicode OK? (https://www.delphipraxis.net/137894-elf-hash-mit-unicode-ok.html)

BlueStarHH 30. Jul 2009 15:29


ELF-Hash mit Unicode OK?
 
Hallo,

hier im Forum habe ich folgenden Code gefunden um aus einem String einen ELF-Hash zu erzeugen. Kann ich diese Funktion mit Delphi 2009 und Unicode nutzen? Es lässt sich ohne Probleme compilieren, doch ob das auch logisch richtig ist, kann ich nicht prüfen, da mir das Wissen dazu fehlt. Danke!

Delphi-Quellcode:
Function HashFromStr(Const Value: String): Cardinal; // ELF-Hash
Var
  i: Integer;
  x: Cardinal;
Begin
  Result := 0;
  For i := 1 To Length(Value) Do Begin
    Result := (Result Shl 4) + Ord(Value[i]);
    x := Result And $F0000000;
    If (x <> 0) Then
      Result := Result Xor (x Shr 24);
    Result := Result And (Not x);
  End;
End;

himitsu 30. Jul 2009 15:34

Re: ELF-Hash mit Unicode OK?
 
Ja, du kannst diese Funktion so mit D2009 verwenden, aber es kommt unter Umständen ein anderer Hashwert raus, als wenn dieser mit einer AnsiVersion dieser Funktion erstellt würde. (speziell bei Zeichen ab #128)

BlueStarHH 30. Jul 2009 15:37

Re: ELF-Hash mit Unicode OK?
 
Danke!

himitsu 30. Jul 2009 15:43

Re: ELF-Hash mit Unicode OK?
 
bitte

[info]
Wenn diese Funktion die selben Ergebnisse liefern soll, wie unter älter Delphis,
(z.B. für eine Komunikation bzw. einen Datenaustausch mit einem älterem Delphi-Programm)
dann einfach String durch AnsiString ersetzen, aber dann ist diese Funktion natürlich nicht mehr Unicodefähig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz