HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Необходима помощь в переводе с C++ на Delphi двух функций
  #1  
Старый 21.02.2009, 23:50
KIR@PRO
Постоянный
Регистрация: 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++ возможности перевести нет поэтому прошу помоч.
 
Ответить с цитированием

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

  #3  
Старый 22.02.2009, 13:39
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами: 9671366

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

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

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

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

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

  #5  
Старый 23.02.2009, 13:59
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
С нами: 9671366

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

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

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

  #6  
Старый 24.02.2009, 02:48
SaiRus
Постоянный
Регистрация: 24.11.2008
Сообщений: 416
С нами: 9191105

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

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

  #7  
Старый 24.02.2009, 10:29
KIR@PRO
Постоянный
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.