|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.07.2021, 23:17 | #1 |
Новичок
Джуниор
Регистрация: 10.07.2021
Сообщений: 2
|
Конвертация txt-файла в bin-файл, и наоборот. С++
Бьюсь уже второй день, ничего не работает. И код из этого обсуждения (https://stackoverflow.com/questions/...nary-file-in-c) тем более. Получается считывать данные из txt файла, а вот с бинарным полный провал... Вкратце, имеется некий входной txt-файл, где записаны числа. Строк может быть любое количество(в строке по числу 3-4).
|
11.07.2021, 09:26 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Странный какой-то пример приведён.
Я так понимаю: на входе - текстовый файл с числами, на выходе - файл с теми же числами, но в бинарном представлении? Нужно определиться, какие числа будут на выходе - int? long int ? Считанную строку преобразовать в число и уж нужное число байт числа писать в бинарный. На простом С без плюсов это бы звучало так (не уверен за давностью): Код:
Наоборот - таким же способом. Как-то так. |
13.07.2021, 20:59 | #3 |
Новичок
Джуниор
Регистрация: 10.07.2021
Сообщений: 2
|
вот мой пример, все работает за исключением обратного вывода из бин файла
https://pastebin.com/sKXS36vs для переноса строки я использую флаг NAN но когда идет обратное преобразование, я не могу избавиться от нан, он тоже печатается вместе с переносом строки |
13.07.2021, 21:43 | #4 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Код:
I am not a wizard, I am just learning.
|
06.08.2021, 09:37 | #5 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Код:
Последний раз редактировалось taras-proger77; 06.08.2021 в 12:33. |
06.08.2021, 09:40 | #6 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
|
07.08.2021, 02:27 | #7 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Не нужен где именно?
I am not a wizard, I am just learning.
|
13.08.2021, 06:30 | #8 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
В этой задаче. Для конвертации файла в файл в форматах, хранящих некоторое количество несвязанных отдельных значений, без оптимизации дисковых операций на уровне прикладного кода достаточно дёргать каждое значение, а контейнерные типы не нужны. Вот если бы задача была конвертировать растр из bmp в png или чертёж из бинарного формата в текстовый, тогда чтение всего файла может быть оправдана. Или если бы стояла задача оптимизации дисковых операций. А если каждый из файлов на два-три порядка больше оперативной памяти? Всё равно будете целиком читать? Или запихаете ещё и в промежуточный файл виртуальной памяти? А если каждый из файлов на порядок больше даже не фактического размера физической оперативной памяти, а адресного пространства оперативной памяти? Всё равно приметесь целиком читать?
Последний раз редактировалось taras-proger77; 13.08.2021 в 06:33. |
16.08.2021, 21:42 | #9 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Ваше решение конечно же шедевр, спору нет.
Выполняется даже ОЗУ не нужно, просто класть туда нет чего P. S. Для больших объемов данных есть функция malloc, позволяет читать данные блоками заданного размера. Полезно при ограниченных ресурсах.
I am not a wizard, I am just learning.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переделавание кода на считывание из файла в файл output.txt input.txt !!! | airesjke | Помощь студентам | 0 | 29.05.2013 14:07 |
Конвертация float->string и наоборот | qwerty_kap | Общие вопросы C/C++ | 1 | 28.05.2012 10:34 |
конвертация int16[] to byte[] и наоборот | Teksa | Общие вопросы .NET | 5 | 20.07.2010 09:27 |