|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
Работа с бинарными файлами: какой способ работает наиболее быстро при записи и считывании?28.09.2014, 02:43. Показов 6137. Ответов 30
Метки нет (Все метки)
Всем привет прошу помощи по этой теме. Попробую изложить кратко:
1) Есть не бинарный файл -> Считываю его ifstream -> работаю с данными -> записую в бинарный файл обработанные данные. 2) Открываем наш бинарный файл в другой программе -> считываем данные -> работаем. Что интересует: 1) При помощи чего можно полноценно работать по данной теме? Пока знаю только fstream и коечто видел про stdio.h но пока не разбирался решил спросить совета тут. 2) Какие краткие + и - у этих способов(либы итд) которые вы назовете включая названые мной. И какой способ работает наиболее быстро в области записи и считывания из файла бинарного кода. Вопросы/Проблемы: 1) ofstream оператор << не пишет бинарно так же как >> не читает. Частично нашел решение для константных типов данных : file.write((const char*) &(x),sizeof(float)) итд. Но строки (w/string) записать не могу(не знаю/не умею/нельзя?). Либо получается просто текстовый код либо бинарный но последующее чтение(ifstream.read()) лупит лишние символы в считываемую строку (записал "abvgd" считало "abvgdMMMMMMMM"). Так как скорость считывания для меня играет большую роль то записывать и считывать строки посимвольно не хотелосьбы. Тема для меня довольно важна и очень хотелось бы чтоб вы мне помогли по этим вопросам. Заранее спасибо.
0
|
|
| 28.09.2014, 02:43 | |
|
Ответы с готовыми решениями:
30
Работа с файлами, какой способ сейчас современный?
|
|
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
|
||
| 28.09.2014, 13:44 | ||
Сообщение было отмечено TierX как решение
Решение
1
|
||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||
| 28.09.2014, 13:54 | ||||||
|
Сишные касты - зло. c_str() возвращает указатель на константу.
Ну и методы read разделил, ибо UB - читалось ноль символов.
1
|
||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||
| 28.09.2014, 14:04 | ||||
|
Добавлено через 7 минут
1
|
||||
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
||||||
| 28.09.2014, 14:08 [ТС] | ||||||
|
Вот наконецто получилось + еще один способ чтение без resize.
Кликните здесь для просмотра всего текста
C fstream немного вроде разобрался.
0
|
||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 28.09.2014, 14:13 | |
|
TierX, getline будет читать до разделителя - переноса строки. Так что не подходит.
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 28.09.2014, 14:18 | ||
|
0
|
||
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|||||||
| 28.09.2014, 14:28 [ТС] | |||||||
|
0x10, Хм а если так вроде работает?
Кликните здесь для просмотра всего текста
str1 size: 29 str1: hello im your 4 candy today! str2 size: 34 str1: hello im your #INF trouble today! Для продолжения нажмите любую клавишу . . . Теперь про
0
|
|||||||
|
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
|
|
| 28.09.2014, 14:31 | |
|
1
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 28.09.2014, 14:35 | ||
|
0
|
||
|
21 / 21 / 0
Регистрация: 28.02.2014
Сообщений: 138
|
|
| 28.09.2014, 14:36 [ТС] | |
|
0x10, Нехочется делать ресайз. Хтотя тут я незнаю какой из способов быстрее. Может ресайз + read быстрее одного getline. нужно будет проверить на огромном файле! Ж)
maxillion, Вы порсто написали Api. Они то разные бывают) Буду разберать теперь этот способ. Потом добавлю результат. Всем большое спасибо что расчехлили дурня
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 28.09.2014, 14:42 | |
|
0
|
|
| 28.09.2014, 14:42 | |
|
Работа с бинарными файлами Работа с бинарными файлами Работа с бинарными файлами Работа с бинарными файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|