Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 18:04   #1
green123
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 10
По умолчанию Помогите разобраться Delhi и С++

Добрый день всем
вопрос людям одинакого хорошо знающим Delhi и С++
С++ не знаю совсем
соответствие операторов Си и Паскаль посмотрел
есть кусок кода на Си
функция кодирует файл
мне необходимо перевести код в Delphi и использовать в своей проге

Код:
int
do_encode ( unsigned char *fname, unsigned char *fname_out, word address, half code, int type )
{
	int i = 0;
	int skip = 0;
	int count = 0;
	int startaddr_set = 0;
	byte buf[0x4000];
	word len = 0;
	word startaddr = 0;
	void *pos = NULL;
	FILE *fin = NULL;
	FILE *fout = NULL;

	fin = fopen ( fname, "rb" );
	if ( !fin )
	{
		printf ( "Can't open %s\n", fname );
		return 0;
	}

	fout = fopen ( fname_out, "wb" );
	if ( !fout )
	{
		printf ( "Can't open %s\n", fname_out );
		return 0;
	}

	printf ( " - Encrypting File       [" );
	fflush ( stdout );

	while ( (len = fread ( buf, 2, 0x2000, fin )) > 0 )
	{
		if ( !startaddr_set )
		{
			startaddr_set = 1;
			startaddr = address;
			printf ( "0x%08X            ", startaddr );
		}
		if ( skip > 30 )
		{
			printf ( "\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8. 0x%08X", address );
			fflush ( stdout );
			if ( ++count > 100 )
			{
				count = 0;
				printf ( "\n                       [" );
				printf ( "0x%08X            ", address );
				fflush ( stdout );
			}
			skip = 0;
		}
		encode ( buf, address, len, code, type );

		fseek ( fout, address - startaddr, SEEK_SET );
		fwrite ( buf, 2, len, fout );

		address += (len*2);
		skip++;
	}
	printf ( "\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8. 0x%08X", address );
	printf ( "]\n" );
	fclose ( fin );
	fclose ( fout );

	return 1;
}

в частности вопрос чему в Delphi соответствует следующее условие

if ( skip > 30 )

и это
printf ( "\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8 \x8. 0x%08X", address );


и на последок очень наглая просьба
может кому-то будет не трудно переделать код в Delphi

Последний раз редактировалось green123; 23.06.2009 в 18:15.
green123 вне форума
Старый 23.06.2009, 18:39   #2
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

вторая строчка printf это в делфи writeln
Яр|/||< (^_^) вне форума
Старый 23.06.2009, 19:19   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

первое
Код:
if skip > 30 then
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума
Старый 24.06.2009, 06:35   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Люди, а нет переводчика с C++ на Dlephi и на оборот? Интересно было-бы...
Altera вне форума
Старый 24.06.2009, 12:46   #5
green123
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 10
По умолчанию

а в чем отличие между

printf ( "Can't open %s\n", fname );

и
printf ( "\x8\x8\x8\x8\x8\x8\x8\x8\x8\x8 \x8. 0x%08X", address );
я так понимаю что первая запись значит
записать куда-то например в лог Can't open и имя файла
а что значит вторая запись?
green123 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MDB в DELHI cowboy БД в Delphi 6 16.06.2009 17:06
DELHI. Таймер ... Осипович Помощь студентам 3 12.06.2009 18:46
Задача на Delhi 7. Allah2009 Помощь студентам 1 01.05.2009 17:02
Помогите разобраться в С++ saleens7 Общие вопросы C/C++ 5 09.01.2009 17:08
Помогите разобраться! Holodok Помощь студентам 12 02.05.2008 18:13