Scalabium Software

SMReport Autogenerated
Knowledge for your independence'.
Home Delphi and C++Builder tips


#93: Hash function for strings

Today I found a good hash function in delphi sources (dbtables.pas):

function GetHashCode(Str: PChar): Integer;
var
  Off, Len, Skip, I: Integer;
begin
  Result := 0;
  Off := 1;
  Len := StrLen(Str);
  if Len < 16 then
    for I := (Len - 1) downto 0 do
    begin
      Result := (Result * 37) + Ord(Str[Off]);
      Inc(Off);
    end
  else
  begin
    { Only sample some characters }
    Skip := Len div 8;
    I := Len - 1;
    while I >= 0 do
    begin
      Result := (Result * 39) + Ord(Str[Off]);
      Dec(I, Skip);
      Inc(Off, Skip);
    end;
  end;
end;


Published: August 1, 2000

See also
 
Clarion Viewer
Paradox ActiveX
DBISAM Password Recovery
SMExport suite
Clarion to Text converter
SMMsg suite
Viewer for MS Outlook Messages
Excel Reader (dll)
Paradox to MS Access converter
ExcelFile Viewer
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2020, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMExport advertising