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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 209, средняя оценка - 4.61
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Как открыть бинарный файл, не зная его структуру? - C++

22.01.2009, 01:41. Просмотров 27046. Ответов 12
Метки нет (Все метки)

Можно ли как-нибудь открыть бинарный файл, не зная его структуру?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2009, 01:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как открыть бинарный файл, не зная его структуру? (C++):

Как правильно сохранить и потом считать структуру в бинарный файл - C++
Есть структура struct card { int size; char *lear; int *name; }; Эта структура это карты игрока. Заполняем ее данными, у...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл - C++
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Записать структуру в бинарный файл - C++
Всем доброго времени суток. у меня такая проблема, мне нужно перекинуть в бинарный файл структуру. Структуру создала, все сделала. Файл...

Как записать структуру в бинарный файл одним "блоком" - C++
Как записать структуру в бинарный файл одним "блоком", если в структуре есть private данные? struct MyStruct{ char Name; ...

Не получается открыть бинарный файл - C++
Всем привет! Есть класс Garage! у него приватное поле string name и поле fstream inv; Есть метод для записи имени в файл: void...

Открыть бинарный файл(.ехе) и сохранить часть байтов в текст - C++
Всем привет. Задача такая: нужно прочитать .exe. в конце его есть некие спецсимволы, которые мне нужно прочитать. Например они...

12
vander
0 / 0 / 0
Регистрация: 15.09.2008
Сообщений: 26
22.01.2009, 02:14 #2
Открыть то можно, но тогда зачем если ты всеравно ничего не поймеш.
А для понимания надо знать структуру.
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.01.2009, 02:14 #3
fopen(. . . ,"rb");
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
23.01.2009, 03:03  [ТС] #4
Не правильно сформулировал вопрос, открыть-то, понятно-можно, а прочитать как-нибудь, не зная его структуру?
0
Lord_Voodoo
Супер-модератор
8594 / 2209 / 61
Регистрация: 07.03.2007
Сообщений: 10,967
Завершенные тесты: 1
23.01.2009, 07:59 #5
qwert, да читать вы его можете точно также каки файл, структуру которого вы знаете, но вот какой смысл в этом, объясните? функциям абсолютно все равно, знаете вы структуру или нет...
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
24.01.2009, 02:39  [ТС] #6
Цитата Сообщение от WooDooMan Посмотреть сообщение
qwert, да читать вы его можете точно также каки файл, структуру которого вы знаете, но вот какой смысл в этом, объясните? функциям абсолютно все равно, знаете вы структуру или нет...
В чём смысл? Например, дали бинарный файл, и неправильно сказали его структуру, или вообще не сказали, а открыть надо.
Немного не понял про то, что читать как обычный файл. Например, для функции fread нужно знать структуру, а функция fscanf не подойдёт для работы с бинарным файлом. А есть ещё какие-нибудь другие функции для работы с бинарным файлом, которым не нужно указывать структуру?
0
Lord_Voodoo
Супер-модератор
8594 / 2209 / 61
Регистрация: 07.03.2007
Сообщений: 10,967
Завершенные тесты: 1
24.01.2009, 03:23 #7
fstream, iostream посмотри... а как их юзать - на форуме есть тема с чтением внутренностей ярлыков, как раз тебе живой пример
0
vander
0 / 0 / 0
Регистрация: 15.09.2008
Сообщений: 26
24.01.2009, 05:10 #8
для функции fread не нужно знать структуру чтобы открыть и прочитать.
Надо знать чтобы понять, то что ты там увидиш.
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
26.01.2009, 01:58  [ТС] #9
Цитата Сообщение от WooDooMan Посмотреть сообщение
fstream, iostream посмотри... а как их юзать - на форуме есть тема с чтением внутренностей ярлыков, как раз тебе живой пример
Спасибо. Я пока не пользовался потоками fstream. Попробую разоьраться.

Цитата Сообщение от vander Посмотреть сообщение
для функции fread не нужно знать структуру чтобы открыть и прочитать.
Надо знать чтобы понять, то что ты там увидиш.
Этой функции нужно знать размер структуры. Там 4 параметра, второй из которых размер структуры.
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
26.01.2009, 10:50 #10
Цитата Сообщение от qwert Посмотреть сообщение
Этой функции нужно знать размер структуры. Там 4 параметра, второй из которых размер структуры.
Нет, не нужно. Читай внимательней. Тебе достаточно указать нужный тебе размер буфера в памяти, а не какой-то структуры. Не говорю, что с помощью ftell вообще можно весь бинарный файл залить в оп в буфер по указателю. Так что, fread пофигу структура у тебя там, или обычный указатель на буфер.
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.01.2009, 11:07 #11
можно читать по одному символу fgetc(fp);
если есть макрос getc(fp) тоже можно читать, но возможны побочные эффекты при getc(fp++)
0
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
27.01.2009, 01:00  [ТС] #12
Цитата Сообщение от Vourhey Посмотреть сообщение
Нет, не нужно. Читай внимательней. Тебе достаточно указать нужный тебе размер буфера в памяти, а не какой-то структуры. Не говорю, что с помощью ftell вообще можно весь бинарный файл залить в оп в буфер по указателю. Так что, fread пофигу структура у тебя там, или обычный указатель на буфер.
Например, укажу я наугад в fread 300 байт, и как прочитать информацию?
А можно поподробнее про ftell, раньше я с ней не сталкивался?
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.01.2009, 01:44 #13
Ты такие вопросы задаешь смешные аж жуть. Вот указал ты 300 байт, вот ты 300 байт информации и прочитаешь (если их хватит в файле).
Про ftell в инете можешь найти. Или в книжке любой.

P. S. в противном случае твой вопрос сводится не к тому, как отрыть бинарь, а к следующему: "я такой-сякой нифига не знаю в каком формате хранятся данные в бинаре. че мне терь делать?". По-моему, ты сам еще не понял, что тебе нужно, короче. Как открыть бинарь тебе показали. А формат данных в нем известен только разве великому Ктулху.
1
27.01.2009, 01:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2009, 01:44
Привет! Вот еще темы с ответами:

Как запихнуть в exe html файл и открыть его через нужный мне браузер? - C++
В общем есть у меня файл fff.html путем ShellExecute я открываю его через нужный мне браузер, например: ...

Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует? - C++
Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует?

Запись в бинарный файл двумерного строкового вектора и его считывание - C++
Ну ни в какую не могу понять эту работу с файлами( В чем проблема? Заранее спасибо #include <iostream> #include <fstream> ...

Создать список с последовательным хранением и записать его в бинарный файл - C++
вообщем по условию задачи надо создать список с последовательным хранением и записать его в файл .bin. Данные берутся из текстового...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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