Показать сообщение отдельно

  #2  
Старый 22.02.2009, 11:40
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

знаний по делфи у меня мало, хватило только на это:
Код:
function hash_1(var arKey:Pointer, nKeyLength:integer) : LongInt;
var	h: longint;
	arEnd: Pointer;
begin
	h:=5831;
	@arEnd := arKey + nKeyLength;
	while(arKey < arEnd) do
	begin
		h:= h + (h Shl 5);
		h:= @arKey++;
	end;
	result:=h;
end.


function hash_2(var arKey:Pointer, nKeyLength:integer) : LongInt;
var 	h: longint;
	arEnd: Pointer;
begin
	h:=5831;
	@arEnd := arKey + nKeyLength;
	while(arKey < arEnd) do
	begin
		h: = h + (h Shl 5);
		h: = h Xor @arKey++;
	end;
	result:=h;
end.