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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 00:15   #1
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию Переделать в код для Delphi

Всем доброго времени суток! Помогите пожалуйста переделать код с Си в Delphi.

Код:
/*----------------------------------------------------------------------------
*
* демонстрация ElByECC.DLL
* ========================
*
* данная программа демонстрирует работу с библиотекой ElByECC.DLL,
* генерируя избыточные коды Рида-Соломона на основе пользовательских данных,
* затем умышленно искажает их и вновь восстанавливает.
* кол-во разрушаемых байтов передается в первом параметре командной
* строки (по умолчанию - 6)
----------------------------------------------------------------------------*/
#include <stdio.h>
#include "ElByECC.h" // декомпилировано МЫЩЪХем

#define _DEF_DMG 6 // рушить по умолчанию
#define N_BYTES_DAMAGE ((argc > 1) ? atol(argv[1]) : _DEF_DMG) // сколько байт рушить?

main(int argc, char **argv)
{
       int a;
       char stub_head[HEADER_SIZE]; // заголовок сектора
       char user_data[USER_DATA_SIZE]; // область польз. данных

       struct RAW_SECTOR_MODE1 raw_sector_for_damage; // сектор для искажений
       struct RAW_SECTOR_MODE1 raw_sector_for_compre; // контрольная копия сектора

       // TITLE
       //------------------------------------------------------------------------
       printf("= ElByECC.DLL usage demo example by KK\n");

       // инициализация пользовательских данных
       //------------------------------------------------------------------------
       printf("user data initialize...............");
       for (a = 0; a < USER_DATA_SIZE; a++) user_data[a] = a; // user_data init
       memset(stub_head, 0, HEADER_SIZE); stub_head[3] = 1; // src header init
       printf("+OK\n");

       // генерация кодов Рида-Соломона на основе пользовательских данных
       //-----------------------------------------------------------------------
       printf("RS-code generate...................");
       a = GenECCAndEDC_Mode1(user_data, stub_head, &raw_sector_for_damage);
       if (a == ElBy_SECTOR_ERROR) { printf("-ERROR!\x7\n"); return -1;}
       memcpy(&raw_sector_for_compre, &raw_sector_for_damage, RAW_SECTOR_SIZE);
       printf("+OK\n");

       // умышленное искажение пользовательских данных
       //------------------------------------------------------------------------
       printf("user-data %04d bytes damage........", N_BYTES_DAMAGE);
       for (a = 0; a < N_BYTES_DAMAGE; a++) raw_sector_for_damage.USER_DATA[a]^=0xFF;
       if (!memcmp(&raw_sector_for_damage, &raw_sector_for_compre, RAW_SECTOR_SIZE))
              printf("-ERR: NOT DAMAGE YET\n"); else printf("+OK\n");

       // проверка целостности пользовательских данных
       //------------------------------------------------------------------------
       printf("user-data check....................");
       a = CheckSector((struct RAW_SECTOR *)&raw_sector_for_damage, ElBy_TEST_ONLY);
       if (a == ElBy_SECTOR_OK){
              printf("-ERR:data not damage\x7\n"); return -1;} printf(".data damge\n");

       // восстановление пользовательских данных
       //------------------------------------------------------------------------
       printf("user-data recorver.................");
       a = CheckSector((struct RAW_SECTOR *)&raw_sector_for_damage, ElBy_REPAIR);
       if (a == ElBy_SECTOR_ERROR) {
              printf("-ERR: NOT RECORVER YET\x7\n"); return -1; } printf("+OK\n");

       // проверка успешности восстановления
       //------------------------------------------------------------------------
       printf("user-data recorver check...........");
       if(memcmp(&raw_sector_for_damage, &raw_sector_for_compre, RAW_SECTOR_SIZE))
               printf("-ERR: NOT RECORVER YET\x7\n"); else printf("+OK\n");

       printf("+OK\n");
       return 1;
}
Начинающий програм вне форума Ответить с цитированием
Старый 03.12.2012, 19:06   #2
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Вы меня извините, я не корректно задал вопрос или в чем причина?
Начинающий програм вне форума Ответить с цитированием
Старый 03.12.2012, 19:26   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вопрос вполне понятен, просто никто не хочет переделывать столько видимо

Кстати никто не сможет скорее всего переделать потому что:
Цитата:
#include "ElByECC.h" // декомпилировано МЫЩЪХем
А что это за хедер... Одному Крысу извесно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2012, 19:29   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
просто никто не хочет переделывать столько
Беззвозмедно - то есть Даром (с) Сова
Цитата:
видимо
Имхо
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 03.12.2012, 20:48   #5
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Цитата:
Беззвозмедно - то есть Даром (с) Сова

Имхо
А если не даром? Мне очень нужно реализовать код Рида Соломона именно в Delphi, в инете я нашел только на Си. А может у кого-то есть этот код?
Начинающий програм вне форума Ответить с цитированием
Старый 03.12.2012, 22:32   #6
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Этот код я брал с сайта http://www.insidepro.com/kk/027/027r.shtml
Начинающий програм вне форума Ответить с цитированием
Старый 04.12.2012, 07:50   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Александр, вы хотя бы саму DLL-ку приложили в теме.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 04.12.2012 в 07:53.
raxp вне форума Ответить с цитированием
Старый 04.12.2012, 16:33   #8
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

raxp, если я Вас правильно понял, то вы имели ввиду это?
Вложения
Тип файла: zip 3.1.0.0__ElbyECC.zip (24.0 Кб, 9 просмотров)
Начинающий програм вне форума Ответить с цитированием
Старый 04.12.2012, 23:45   #9
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Уважаемые программисты, мне очень нужно эту задачу решить. Скажите что еще от меня требуется, что бы Вы мне помогли?
Начинающий програм вне форума Ответить с цитированием
Старый 05.12.2012, 00:30   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

На правах оффтопа:
Цитата:
реализовать код Рида Соломона
Так вот "это" не реализация,а подключение сторонних библиотек
Имхо, тоже самое что вместо программы, решающей квадратное уравнение, написать uses quadratic_equation.pas;
...
solve_equation(a, b, c);
...

По теме:
Ждем более опытных программистов
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как переделать код delphi на php delphihelp Помощь студентам 1 17.03.2012 11:34
Переделать в код Delphi!! Настена290 Помощь студентам 2 01.02.2012 15:52
Код на java переделать на delphi ilshat09 Помощь студентам 9 13.02.2011 14:23
Переделать код с Delphi на C#. Post запрос и т.д. Casper-SC Общие вопросы .NET 3 07.05.2010 02:26
Помогите переделать код С++ в Delphi (CRC) Georgios Помощь студентам 2 22.07.2009 13:28