Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 2

Открытие бинарного файла MFC

14.02.2014, 23:37. Показов 3486. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, друзья.
Рискну создать тему, вопрос уже поднимался, но предложенные методы решения мне не помогли.

Имею бинарный файл. Задача открыть, скопировать часть файла в буфер, выполнить преобразования.
После открытия и копирования, в переменной вместо последовательности 0 и 1 получаю - см скрин.

Прилагаю код функции. Акцентирую Ваше внимание на строчки 3-7.
Спасибо.

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
26
bool CSignalsDlg::Analysis()
{
    CStdioFile fileIn;
    fileIn.Open(FileInPath, CFile::modeRead | CFile::typeBinary);
    
    char buffer[65536];                                                 
    fileIn.Read(buffer, sizeof(buffer));
 
    int i, position = 0;
    for (i = 0; i < signalIsTrue; i++)
    {
        position = FindMark(buffer, syncMarkG732, position, i);         
        if (position)
            position = PlusPeriod(position, periodG732);                
        else break;
    }
 
 
    fileIn.Close();
 
    // возвращает результат работы
    if (i == signalIsTrue-1)
        return TRUE;
    else
        return FALSE;
}
Миниатюры
Открытие бинарного файла MFC  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2014, 23:37
Ответы с готовыми решениями:

Чтение бинарного файла в MFC
Доброго времени суток всем! Подскажите, что-то впадаю в ступор. Есть бинарный файл: Задача, найти байты 0хЕ3 и выполнить...

Открытие файла в mfc
Здравствуйте,начал изучать mfc и столкнулся с проблемой. Нужно сделать ,чтобы по нажатию кнопки открывался файл. Гугл предлагает...

Открытие бинарного файла
Добрый вечер господа. прошу совета, как справиться с возникшей проблеммои. Вот собственно код: import struct file=open('1...

6
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
14.02.2014, 23:47
Цитата Сообщение от crowkd Посмотреть сообщение
вместо последовательности 0 и 1
А она там есть? И именно в символьном виде - т.е. как строка "01..."?
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
15.02.2014, 00:02
Цитата Сообщение от crowkd Посмотреть сообщение
Имею бинарный файл. Задача открыть, скопировать часть файла в буфер, выполнить преобразования.
После открытия и копирования, в переменной вместо последовательности 0 и 1 получаю - см скрин.
ну а что ты хотел?
у тебя объявлен char вот отдадчик и гонит в символьном виде
добавь свой буфер в контрольные значения и разглядывай как хошь
а что ты выложил и на скине разный код?
и какой strlen для бинарных данных?
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.02.2014, 00:11
На скрине вижу как по глупости - применяем к бинарным данным strlen а именно в
Цитата Сообщение от crowkd Посмотреть сообщение
FindMark(buffer, syncMarkG732, position, i);
, бинарный файл на то и бинарный что могут идти нулевые байты причём их может быть больше чем ненулевых.
Цитата Сообщение от crowkd Посмотреть сообщение
syncMarkG732
и её длинна - это статическая строка или тоже из бинарика кусок данных?Если ищем кусок именно текста то использование двух циклов для сравнения содержимого строк просто нерациональная глупость - тут strstr в помощь.
1
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 2
16.02.2014, 12:13  [ТС]
Цитата Сообщение от gazlan Посмотреть сообщение
А она там есть? И именно в символьном виде - т.е. как строка "01..."?
Из Вашего вопроса подразумеваю, что нет. В hex редакторе открывается как hex или как бинарный, поэтому думал, что могу взять напрямую эти данные. Помогите разобраться плз.

Цитата Сообщение от ValeryS Посмотреть сообщение
а что ты выложил и на скине разный код?
Остался скрин с отладки, интересовал только буфер. Я его просто передал, поэтому было без разницы где смотреть.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
На скрине вижу как по глупости - применяем к бинарным данным strlen а именно в, бинарный файл на то и бинарный что могут идти нулевые байты причём их может быть больше чем ненулевых. и её длинна - это статическая строка или тоже из бинарика кусок данных?Если ищем кусок именно текста то использование двух циклов для сравнения содержимого строк просто нерациональная глупость - тут strstr в помощь.
C++
1
2
char syncMarkG732[8];
strcpy_s(syncMarkG732, "0011011");
Это строка. Изначально хотел: получить бинарную последовательность из файла, загнать его в символьный массив, определить позицию вхождения в нее подстроки. Про strlen и strstr понял, благодарю.
0
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
16.02.2014, 14:46
В эташе быстрый поиск. Преобразовывать ничего не требуется. Паттерн задается как массив байт. ISearch - без учета регистра (для символьных строк).
Вложения
Тип файла: 7z bmh.7z (1.2 Кб, 8 просмотров)
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
16.02.2014, 16:08
Лучший ответ Сообщение было отмечено crowkd как решение

Решение

Цитата Сообщение от crowkd Посмотреть сообщение
Это строка. Изначально хотел: получить бинарную последовательность из файла, загнать его в символьный массив, определить позицию вхождения в нее подстроки. Про strlen и strstr понял, благодарю.
crowkd, думаю у тебя ещё не до конца полное понимание что такое бинарный файл. Рассмотрим конкретный пример : пусть в файле записана строка "012", согласно ASCII кодировке в файле храниться последовательность кодов 48 - '0' 1 - '49' и 2 - '50' итак в строке 3 байта т.е 3*24 бита -конкретно строка 012 соответвует битовой последовательности 00110000 00110001 00110010 или в полностью бинарном виде
001100000011000100110010 . Таким образом в файле записана строка всего из 3символов и это 24 бита - естественно в файле не будет никаких 001100000011000100110010 там будет 123 считай битовое представление некой абстракцией, которая присутвует но не явно как я вижу ты думал
Цитата Сообщение от crowkd Посмотреть сообщение
"0011011"
т.е 27 - т.е это всего лишь управляющий символ ASCII 27 (соотв коду ESC)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2014, 16:08
Помогаю со студенческими работами здесь

Открытие бинарного файла для чтения
MS VS 2010 Есть функция, ей передаётся имя бинарного файла для чтения: float detect(string name) { int t; ofstream...

Открытие бинарного файла и его запись
Помогите пожалуйста сделать открытие бинарного файла и запись его через COM port в микросхему Чтение и сохранение бинарного файла у меня...

Сохранение и открытие бинарного файла используя TFilestream
Блин, я знаю как это сделать дефолтной библиотекой языка но мне просто очень хочется реализовать это через TFilestream. Я вроде написал...

Открытие бинарного файла и преобразование данных в dec
Доброго времени суток! Подскажите каким образом можно открыть бинарный файл вида &quot;*.txt&quot; и перевести данные в десятичную...

Открытие бинарного файла и запись данных из него в другой файл
Всем привет. Помогите, пожалуйста. У меня задача - открыть файл *.bin, в котором хранятся некоторые данные (фреймы Ethernet),...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru