ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Необходима помощь в переводе с C++ на Delphi двух функций
  #1  
Старый 21.02.2009, 23:50
Аватар для KIR@PRO
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

Репутация: 332
Отправить сообщение для KIR@PRO с помощью ICQ
По умолчанию Необходима помощь в переводе с 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++ возможности перевести нет поэтому прошу помоч.
 
Ответить с цитированием

  #2  
Старый 22.02.2009, 11:40
Аватар для criz
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.
 
Ответить с цитированием

  #3  
Старый 22.02.2009, 13:39
Аватар для KIR@PRO
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

Репутация: 332
Отправить сообщение для KIR@PRO с помощью ICQ
По умолчанию

к сожалению код неверен просьба все еще актуальна ;(
 
Ответить с цитированием

  #4  
Старый 23.02.2009, 03:51
Аватар для stasoft
stasoft
Новичок
Регистрация: 03.02.2009
Сообщений: 15
Провел на форуме:
93182

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

arKey++ попробуй исправить на inc(arKey)
 
Ответить с цитированием

  #5  
Старый 23.02.2009, 13:59
Аватар для KIR@PRO
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

Репутация: 332
Отправить сообщение для KIR@PRO с помощью ICQ
По умолчанию

Цитата:
Сообщение от stasoft  
arKey++ попробуй исправить на inc(arKey)
это понятно а вот где *arEnd непонятно как подно сложить char и longint непонятно ....

неужели нет людей которые знают практически одинаково и delphi и c++??? если есть отзовитесь)
 
Ответить с цитированием

  #6  
Старый 24.02.2009, 02:48
Аватар для SaiRus
SaiRus
Постоянный
Регистрация: 24.11.2008
Сообщений: 416
Провел на форуме:
910902

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

KIR@PRO, а arKey это числовой набор в чаре?если да, то попробуй конвертировать форматы вместо long возми int или real...так честно не в курсе к сожалению
 
Ответить с цитированием

  #7  
Старый 24.02.2009, 10:29
Аватар для KIR@PRO
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

Репутация: 332
Отправить сообщение для KIR@PRO с помощью ICQ
По умолчанию

Цитата:
Сообщение от SaiRus  
KIR@PRO, а arKey это числовой набор в чаре?если да, то попробуй конвертировать форматы вместо long возми int или real...так честно не в курсе к сожалению


нет там текст на входе это как MD5 хэширование тока проще.....
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шахматы на Delphi нужна помощь. Mobile С/С++, C#, Delphi, .NET, Asm 3 01.12.2008 02:53
Программа на Delphi. Помощь нужна. Happer С/С++, C#, Delphi, .NET, Asm 7 25.03.2006 21:08
Необходима помощь по взлому чата. ТЮРЯГА Чаты 4 31.05.2004 15:10



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ