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

Можно дописать/удалить из бинарного файла n байтов с заданной позиции

30.10.2012, 19:20. Показов 3646. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть бинарник, нужно реализовать возможность добавления байтов в определенное место с автоматическим увеличением размера файла на добавляемое кол-во байтов, и также возможность удаления n байтов с определенной позиции и автоматическим уменьшением размера на n байтов. Возможно ли? И как? Использую FileStream.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2012, 19:20
Ответы с готовыми решениями:

Удалить часть байтов из бинарного файла
Доброе утро! Я хочу написать функцию удаления части бинарного файла. Просто взять и удалить несколько байт из определенного места (ну это я...

Чтение байтов из бинарного файла
Доброго времени суток. Столкнулся с задачкой которую не могу правильно решить. Вообщем к сути: Есть бинарный файл в конец...

Удалить из строки ее часть с заданной позиции и заданной длины
Ввести с клавиатуры строку. Удалить из этой строки ее часть с заданной позиции и заданной длины. Номер позиции и количество удаляемых...

1
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
31.10.2012, 16:42
SkYneT, автоматически - нет, только ручками.

Вставка, например в середину:
  1. Перемещаемся в середину потока (stream.Seek);
  2. Читаем данные от середины и до конца (или до определенного фрагмента, но потом все-равно придется смещать данные) в буфер;
  3. Пишем в середину потока нужные данные;
  4. Пишем прочитанные в буфер данные.
Если добавление в конец файла, то просто открываем его в режиме FileMode.Append.

Удаление, из середины:
  1. Перемещаемся в середину потока (stream.Seek) + длина удаляемого фрагмента;
  2. Читаем данные от текущей позиции и до конца (или ...) в буфер;
  3. Перемещаемся в середину;
  4. Записываем данные из буфера (stream.Write), данные из буфера будут затирать старые данные;
  5. Уменьшаем длину файла вызвав stream.SetLength(исходная_длина_файла - длина_удаляемого_фрагмента).
Если удаление из конца файла, тогда просто вызываем stream.SetLength(исходная_длина_файла - длина_удаляемого_фрагмента).
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2012, 16:42
Помогаю со студенческими работами здесь

Удалить часть строки заданной длины с заданной позиции
Ввести с клавиатуры строку. Удалить из этой строки ее часть с заданной позиции и заданной длины. Номер позиции и количество удаляемых...

Как менять порядок расположения байтов при чтении бинарного файла?
День добрый! Как в C# менять порядок расположения байтов при чтении? Пож-ста помогите!) Спасибо!

Чему равен указатель текущей позиции файла после записи 4 байтов?
текущей позиции файла после записи 4 байтов?

В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное
В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное. В общем я написал но оно почему то...

Как в файле удалить n байт, начиная с заданной позиции
Вопрос: как в файле удалить n байт начиная с заданной позиции? (файловый ввод-вывод в стиле C++)


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru