Необходима помощь в переводе с C++ на Delphi двух функций |

21.02.2009, 23:50
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами:
9671366
Репутация:
332
|
|
Необходима помощь в переводе с C++ на Delphi двух функций
Доброго времени суток!
Прошу перевести эти две функции на дэлфи:
Код:
#include <stdio.h>
#include <string.h>
//раз функция
static inline long hash_1(char *arKey, int nKeyLength)
{
long h = 5381;
char *arEnd = arKey + nKeyLength;
while (arKey < arEnd) {
h += (h << 5);
h += (long) *arKey++;
}
return h;
}
//два функция
static inline long hash_2(char *arKey, int nKeyLength)
{
long h = 5381;
char *arEnd = arKey + nKeyLength;
while (arKey < arEnd) {
h += (h << 5);
h ^= (long) *arKey++;
}
return h;
}
//это ненадо это я понимаю)
int main()
{
char *chr = "GALLERY_BASEDIR";
int len = strlen(chr)+1;
printf("%ld\n", hash_php5(chr, len));
printf("%ld\n", hash_php4(chr, len));
}
ввиду моих плохих знаний в C++ возможности перевести нет поэтому прошу помоч.
|
|
|

22.02.2009, 11:40
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами:
9746420
Репутация:
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.

|
|
|

22.02.2009, 13:39
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами:
9671366
Репутация:
332
|
|
к сожалению код неверен просьба все еще актуальна ;(
|
|
|

23.02.2009, 03:51
|
|
Новичок
Регистрация: 03.02.2009
Сообщений: 15
С нами:
9088146
Репутация:
21
|
|
arKey++ попробуй исправить на inc(arKey)
|
|
|

23.02.2009, 13:59
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами:
9671366
Репутация:
332
|
|
Сообщение от stasoft
arKey++ попробуй исправить на inc(arKey)
это понятно а вот где *arEnd непонятно как подно сложить char и longint непонятно ....
неужели нет людей которые знают практически одинаково и delphi и c++??? если есть отзовитесь)
|
|
|

24.02.2009, 02:48
|
|
Постоянный
Регистрация: 24.11.2008
Сообщений: 416
С нами:
9191105
Репутация:
100
|
|
KIR@PRO, а arKey это числовой набор в чаре?если да, то попробуй конвертировать форматы вместо long возми int или real...так честно не в курсе к сожалению 
|
|
|

24.02.2009, 10:29
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами:
9671366
Репутация:
332
|
|
Сообщение от SaiRus
KIR@PRO, а arKey это числовой набор в чаре?если да, то попробуй конвертировать форматы вместо long возми int или real...так честно не в курсе к сожалению 
нет там текст на входе это как MD5 хэширование тока проще.....
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Шахматы на Delphi нужна помощь.
|
Mobile |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
3 |
01.12.2008 02:53 |
|
Программа на Delphi. Помощь нужна.
|
Happer |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
7 |
25.03.2006 21:08 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|