Scalabium Software

SMExport advertising

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;
See also
 
Fast Document Viewer
Protected Storage Viewer
Excel Web-stream
Viewer for MS Outlook Messages
ABA Document Convert
Clarion Viewer
Database Information Manager
SMDBGrid
ABA Spreadsheet Convert
Clarion to Text converter
 
 
Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyrightc 1998-2010, Scalabium Software. All rights reserved.
webmaster@scalabium.com

August 1, 2000

SMReport Autogenerated