function ROL(l:longint):longint; begin ROL:=(l shl 1) or (l shr 31); end; function CalcID(name:string):longint; type PLong = ^longint; var l,i:integer; Calc:longint; begin l:=length(name); if l>12 then l:=12; for i:=1 to l do Name[i]:=UpCase(Name[i]); for i:=l+1 to 13 do name[l]:=0; Calc:=0; l:=1; while name[l]<>#0 do begin Calc:=ROL(Calc)+PLong(@name[l])^; Inc(l,4); end; CalcID:=Calc; end;