Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 629
#1

Нужна подсказка в разборе структуры файла - C++

26.11.2012, 16:49. Просмотров 334. Ответов 6
Метки нет (Все метки)

Доброго всем времени суток!
Имеется некий бинарный файл. Нужно его прочитать, вытащить из него всё необходимые значение и, по возможности изменив, записать обратно в том же виде.
Встаёт вопрос, каким методом наиболее эффективно можно разобрать структуру этого файла?

Заранее благодарю за любой совет!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2012, 16:49     Нужна подсказка в разборе структуры файла
Посмотрите здесь:

Структуры, С++. Нужна небольшая подсказка - C++
Вывод на консоль сформированной ведомости и выписки из ведомости для видов продукции, объем поставки которых в стоимостном выражении...

нужна подсказка - C++
int main ( ) { char str = "0123456789"; char str1 = "0123456789"; str1 = 'c'; cout << str << endl; system("pause"); ...

While(i<=n) b[i]=a[i] i++. Нужна подсказка( - C++
char b; char* e={&quot;bin&quot;,&quot;txt&quot;}; int i=0; while(i&lt;=2) { b=e; i++; } cout&lt;&lt;b; На выходе...

Нужна подсказка! - C++
задание звучит так: После завершения шахматной партии, на доске осталось какое-то количество фигур. Матрица desk содержит информацию о...

нужна подсказка - C++
What is the purpose of the curly braces in Line 24 of mystring.h? size_t length( ) const { return current_length; }

Нужна подсказка - C++
Обьясните пожалуйста что не так. При компилирование выводит &quot;&quot;Vam bilshe nizh sto rokiv&quot;&quot; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.11.2012, 17:30     Нужна подсказка в разборе структуры файла #2
Цитата Сообщение от NapalmRain Посмотреть сообщение
вытащить из него всё необходимые значения
Какие значения нужно вытащить?
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 629
27.11.2012, 09:08  [ТС]     Нужна подсказка в разборе структуры файла #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Какие значения нужно вытащить?
Это файл для компьютерной игры, в котором находится список заданий. У каждого задания есть некоторые параметры. Какие-то в виде чисел, какие-то просто галочками. Собственно, хочется понять, есть ли какие-то уже проверенные способы разбора структуры, хотя бы что бы понять, где кончается одно значение и начинается другое. Или это нужно делать исключительно методом тыка?
vxg
Модератор
3120 / 1922 / 208
Регистрация: 13.01.2012
Сообщений: 7,359
27.11.2012, 11:45     Нужна подсказка в разборе структуры файла #4
если есть спецификация формата, то... вопроса наверное не возникло бы
если ее нет, то методом тыка. что-то меняете в игре и отслеживаете где поменялось в файле. когда-то смог таким путем изменить настройки в fallout, но как не бился не смог изменить настройки в RtcW. кроме того файл может шифроваться или содержать контрольную сумму.
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 629
27.11.2012, 14:15  [ТС]     Нужна подсказка в разборе структуры файла #5
Ясно, спасибо! Буду разбираться. К счастью, файл не зашифрован.
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
27.11.2012, 14:35     Нужна подсказка в разборе структуры файла #6
Я вот только вчера для себя консольную игрушку писал. Я делал сохранения статов персонажа в таком виде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 154     int save_stat()//сохранение статов персонажа
 155     {
 156         FILE *fp;
 157         if((fp = fopen("/home/kuli4/c++/atom/stat_main_hero.bat", "wb+")) == NULL)
 158         {
 159             printf("ERROR!\nCannot open stat.bat file\n");
 160             return 1;
 161         }
 162         rewind(fp);
 163         fwrite(&heal_all, sizeof(int), 1, fp);
 164         fwrite(&heal_now, sizeof(int), 1, fp);
 165         fwrite(&dmg, sizeof(int), 1, fp);
 166         fwrite(&lvl_arm, sizeof(int), 1, fp);
 167         fwrite(&lvl, sizeof(int), 1, fp);
 168         fwrite(name, (sizeof(char)*20), 1, fp);
 169         fwrite(&exp, sizeof(int), 1, fp);
 170         fwrite(dmg_item, sizeof(char)*20, 1, fp);
 171         fwrite(arm_item, sizeof(char)*20, 1, fp);
 172         fwrite(&value_dmg_item, sizeof(int), 1, fp);
 173         fwrite(&value_arm_item, sizeof(int), 1, fp);
 174         fwrite(&money, sizeof(int), 1, fp);
 175         fclose(fp);
 176         fp = NULL;
 177         return 0;
 178     }
А загрузку в таком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 187     int load_stat()//загрузка статов персонажа
 188     {
 189         FILE *fp;
 190         if((fp = fopen("/home/kuli4/c++/atom/stat_main_hero.bat", "rb+")) == NULL)
 191         {
 192             printf("ERROR!\nCannot open stat.bat file\n");
 193             return 1;
 194         }
 195         rewind(fp);
 196         fread(&heal_all, sizeof(int), 1, fp);
 197         fread(&heal_now, sizeof(int), 1, fp);
 198         fread(&dmg, sizeof(int), 1, fp);
 199         fread(&lvl_arm, sizeof(int), 1, fp);
 200         fread(&lvl, sizeof(int), 1, fp);
 201         fread(name, (sizeof(char)*20), 1, fp);
 202         fread(&exp, sizeof(int), 1, fp);
 203         fread(dmg_item, sizeof(char)*20, 1, fp);
 204         fread(arm_item, sizeof(char)*20, 1, fp);
 205         fread(&value_dmg_item, sizeof(int), 1, fp);
 206         fread(&value_arm_item, sizeof(int), 1, fp);
 207         fread(&money, sizeof(int), 1, fp);
 208         fclose(fp);
 209         fp = NULL;
 210         return 0;
 211     }
Может и тебе такой метод подойдет.

p.s. извиниюсь за цифры в строках, просто я в vim пишу, а там у меня нумерация строк включена.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 14:52     Нужна подсказка в разборе структуры файла
Еще ссылки по теме:

Нужна подсказка в отладке - C++
Здравствуйте! Не знаю как правильно сравнить вводимое число типа double (number_1) с символом '|' (29-30 строчка). Если ввести в формате |m...

Нужна подсказка с обучением - C++
Я хочу программировать на c++, мои знания на уровне 5/100 всех знаний про c++, кто может скинуть уроки про программирование на C++,...

Строки, нужна подсказка. - C++
Дана строка, состоящая из слов, разделенных любым количеством пробелов. Напишите программу, которая находит все слова, в которых буква ”а”...

Нужна подсказка с ответами! - C++
4) Когда выделен массив объектов, какой конструктор используется чтобы инициализировать все объекты массива? a) автоматический copy...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 629
27.11.2012, 14:52  [ТС]     Нужна подсказка в разборе структуры файла #7
kuli4ok, Благодарю! Может и такой вариант подойдёт) буду разбираться.
Yandex
Объявления
27.11.2012, 14:52     Нужна подсказка в разборе структуры файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru