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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2009, 16:34   #1
Shturmer
 
Регистрация: 08.07.2009
Сообщений: 7
По умолчанию Программе некорректно обрабатывает некоторые файлы

Доброго времени суток!
Написал на Дельфи (Turbo Delphi 2006) программу-сортировщик файлов GBX(карты для игры Trackmania).
Но некоторые файлы обрабатываются некорректно.
Программа и исходный текст во вложении.
Также в архиве пример файла который отрабатывается некорректно (1250cc Debonaire.Challenge.Gbx) и пример файла корректного файла (ADRENALINE.Challenge.Gbx).
З.Ы. Опыта в создании приложений нет. Наиболее общие представления.
Кому интересно описание данного файла тут. (на английском). При создании данной программы никак не использовалось =)
Вложения
Тип файла: rar sortmaps.rar (249.1 Кб, 20 просмотров)

Последний раз редактировалось Shturmer; 08.07.2009 в 16:45. Причина: Дополнительная информация
Shturmer вне форума Ответить с цитированием
Старый 08.07.2009, 16:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Толку от твоего исходника без формы и прочего...
Прикрепляй архив проекта всего.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2009, 17:05   #3
Shturmer
 
Регистрация: 08.07.2009
Сообщений: 7
По умолчанию

Как и просили =)
Вложения
Тип файла: rar sortmaps_project.rar (24.0 Кб, 13 просмотров)
Shturmer вне форума Ответить с цитированием
Старый 08.07.2009, 20:59   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Shturmer, вы не могли бы по-подробнее. Я скомпилировал файл, вроде все работает
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 08.07.2009, 22:35   #5
Shturmer
 
Регистрация: 08.07.2009
Сообщений: 7
По умолчанию

Если в директории находится один файл, который неверно обрабатывается, в данном случае 1250cc Debonaire.Challenge.Gbx, то после выполения программы в "логе"(лог вида: имя_файла|автор|время) не пишется автор и время строка получается такой "1250сс Debonaire.Challenge.Gbx||00.00." Если бы файл обрабатывался верно то строка должна принять вид "1250сс Debonaire.Challenge.Gbx|-Phyter-|01.49.00" где -phyter- автор, а 01.49.00 время. Чтобы понять что должно быть в файле, файл *.Gbx можно открыть например блокнотом и во второй строке можной найти author="-Phyter-" и gold="109000", автор и время соответственно.
А если есть в директории есть помимо этого другие файлы, но которые обрабатываются верно, то в лог "неверных" файлов пишутся данные из предыдущего файла, т.к. у меня не обнуляются переменные. Переменные пробовал обнулять после каждого файла, результат тотже.
Shturmer вне форума Ответить с цитированием
Старый 09.07.2009, 13:57   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если дотерпите, сегодня вечерком посмотрю, что можно сделать с Вашей задачей.
но сразу могу сказать, где "корень зла" - файлы .Gbx НЕ ТЕКСТОВЫЕ! Их категорически нельзя читать как текстовые f : TextFile; Readln(f,buf)

Изменяйте, например, на работу с потоками:

Код:
var FS : TFileStream;
    Buffer : array[0..60*1024] of byte;
...
  FS := TFileStream.Create( SSource.text+'\'+SearchRes.Name, fmOpenRead   );
 //переход на нужную позицию в файле...
 FS.Seek(позиция, soFromBeginning); 
 // чтение в буфер 
 FS.ReadBuffer(buffer, нужное_число_байт);
и т.д.

  FS.Free;
и второе.
в файлах явно есть строго определённая структура. Почему ей не пользоваться?!! o_O
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.07.2009, 14:51   #7
Shturmer
 
Регистрация: 08.07.2009
Сообщений: 7
По умолчанию

Спасибо за подсказку, с потоками попробую разобраться. А вот насчет структуры... Я просто не знаю как ей воспользоваться. Как я уже писал, у меня только наиболее общие представления в создании программ. По ссылке, приведенной мной в первом посте есть полное описание этого формата. Но вот чтобы воспользоваться мне не хватает знаний.
Вообще, на написание данной программы меня подтокнуло нежелание в ручную сортировать около 2000 тысяч таких файлов =)
Shturmer вне форума Ответить с цитированием
Старый 09.07.2009, 20:25   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так сами разберётесь? или помощь всё таки нужна?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.07.2009, 20:34   #9
Shturmer
 
Регистрация: 08.07.2009
Сообщений: 7
По умолчанию

Думаю всетки нужна... Пока мне вообще не понятно что с этим файловым потоком делать =). Скопировали мы в буфер, часть файла опредленного размера. Дальше чего с ней делать? как нам найти в ней atuhor, envir и goldtime? =)
Shturmer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Некорректно работает запрос zulu80 БД в Delphi 10 16.02.2009 13:35
IdHTTP1 некорректно работает nike-p Работа с сетью в Delphi 9 23.07.2008 23:13
Файлы в программе. Kukkk Общие вопросы Delphi 3 25.12.2007 21:09
Как отображать в своей программе файлы *.gif с анимацией? SalasAndriy Общие вопросы C/C++ 1 02.11.2007 12:17