С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 98

Перезаписать определенные байты бинарного файла

16.02.2018, 13:48. Показов 3660. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При записи нового бинарного фаила использовал копирование со смешением в 10 баит.
C#
1
2
3
4
5
6
7
8
9
10
FileStream fs1 = new FileStream(@"C:\Users\Alshanik_AP\Documents\Visual Studio 2010\Projects\WindowsFormsApplication72\fns_norm_hex.hex", FileMode.Open);
FileStream fs2 = new FileStream(@"C:\Users\Alshanik_AP\Documents\Visual Studio 2010\Projects\WindowsFormsApplication72\fns_norm_hex1.bin", FileMode.OpenOrCreate);
byte[] mass = new byte[fs1.Length];
fs1.Read(mass, 0, (int)fs1.Length);
fs2.Seek(10, System.IO.SeekOrigin.Begin);
fs2.Write(mass, 0, mass.Length);
fs2.Flush();
fs2.Close();
fs1.Close();
}
Посмотрел содержание фаила в ридере , первые 10 баит это 00 , как их перезаписать , попробывал через BaseStream.Position. не получилось , на их месте должны быть 5 ushort переменных.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2018, 13:48
Ответы с готовыми решениями:

Как перезаписать байты?
Здравствуйте Подскажите, как сделать: 1. Я открывают бинарный файл: using (FileStream stream = new...

Дописать в конец файла определенные байты
Ребята снова нужна ваша помощь. Задача. Есть бинарник, назовем его data1.bin Этот data1.bin весит почти 50 гб. В самый конец...

Прочитать из бинарного файла в 5 по 8 байты включительно
что то непойму: Подскажите пожалуйста, как прочитать из бинарного файла байт (с 5 по 8 границы включены) * в виде потоков

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18245 / 14167 / 5366
Регистрация: 17.03.2014
Сообщений: 28,848
Записей в блоге: 1
16.02.2018, 23:08
Лучший ответ Сообщение было отмечено PEndos как решение

Решение

PEndos, для перезаписи первых 10 байтов достаточно открыть файл и записать 10 байтов. Или сместиться в начало уже открытого потока и тоже записать 10 байтов. А еще можно сначала записать то что должно быть записано в начале, а потом дописывать остальное.
1
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 98
19.02.2018, 13:29  [ТС]
Так и сделал. Имеющийся файл нужно разделить на несколько файлов( допустим размер файла 6 байт а размер куска на который я его должен поделить это 2 ) каждый кусок нужно сохранить в отдельный файлы.

C#
1
2
3
4
5
6
7
8
9
10
11
 BinaryReader br = new BinaryReader(File.Open(filename, FileMode.Open));
BinaryWriter bw = new BinaryWriter(File.Open(filename2, FileMode.Create, FileAccess.Write));
byte[] chunk = new byte[2];// размер куска
int count =0; счет кусков на которые будет разбиваться файлов
int length =(int)br.BaseStream.Length; 
while (br.BaseStream.Position <length)
{
br.BaseStream.Read(chunk, 0, chunk.Length); 
bw.Write(chunk);
chunk = null;
count ++;
Пока не понимаю как реализовать чтение кусками , так же вопрос стоит если фаил будет размером не 6 а 7 , т.е последний фаил будет размером 1 байт . Как я думаю , BaseStream изначально стоит в 0 позиции и после первого прочтения перемещается на 2 баита ? И следующий раз он уже долже читать с 2 позиции ?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.02.2018, 14:37
Цитата Сообщение от PEndos Посмотреть сообщение
Имеющийся файл нужно разделить на несколько файлов( допустим размер файла 6 байт а размер куска на который я его должен поделить это 2 ) каждый кусок нужно сохранить в отдельный файлы.
Что-то как-то вы перемудрили.
Если надо перезаписать первые 10 байт, то и записывайте эти первые 10 байт в начало файла. Зачем что-то резать?

Кроме того, если вы пишете голые байты, то использовать BinaryWriter не обязательно — достаточно использовать FileStream.
Передавая файловый поток (тот самый BaseStream) в конструктор декоратора BinaryWriter, вы отдаете этот поток под контроль декоратора.
Дальнейшее использование потока BaseStream "за спиной" у BinaryWriter'a приведет ко всякого рода веселым ситуациям, т.к. он ничего об этом использовании не знает.
0
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 98
19.02.2018, 14:46  [ТС]
Это отдельный вопрос только сейчас понял что нужно создать отдельную тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2018, 14:46
Помогаю со студенческими работами здесь

Вытащить из бинарного файла определенные данные
Стоит задача вытащить из бинарного файла (3d моделька для игры) определенные данные (например имена и параметры определенных полей). В...

Написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти байты в выходной файл
Здравствуйте!В убунту на Си нужно написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти...

Как найти определенные байты в процесе?
Всем привет помогите мне нужно найти байты в процесе Как это реализовать код в DLL Байты 33 E6 00 00 00 00 01 00 00 00 0D

Как выделить цветом определенные комбинации бинарного массива?
Есть такой вот код, на базе него нужно сделать 3 вариации, и чтоб при сдвиге они оставались неподвижны. 1. Выделить красным цветом первую...

Создание бинарного дерево из бинарного файла
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru