Поблочная запись массива byte[] в файл - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Возник такой вопрос: есть массив байт
Листинг программы
  1. byte[] ba = new byte[richTextBox2.Text.Length];
В ричтекстбоксе находится последовательность из 0 и 1. В зависимости, что идет, записываю в массив:
Листинг программы
  1. for (int i = 0; i < ba.Length; i++)
  2. {
  3. if (richTextBox2.Text[i] == '0') ba[i] = 0;
  4. if (richTextBox2.Text[i] == '1') ba[i] = 1;
  5. }
Вопрос 1: Допустим, у меня в последовательности 0 и 1 всего 62 символа - 62 бита. Как записать блоками по 1 байту в файл данную последовательность (если исходный размер последовательности, как в данном случае, 8 не кратен, до записать нули в конец файла). Вопрос 2, собственно, заключается в том, как считать из файла данные так же блоками по одному байту (8 бит). С битами работаю впервые, потому данные вопросы вызывают затруднение. Заранее спасибо!

Решение задачи: «Поблочная запись массива byte[] в файл»

textual
Листинг программы
  1. string src = "10000000100000001000000010000000100000001000000010000000100000";
  2. byte[] bytes = new byte[(src.Length / 8) + ((src.Length % 8) > 0 ? 1 : 0)];
  3. BitArray ba = new BitArray(src.Select(x => x != '0').ToArray());
  4. ba.CopyTo(bytes, 0);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут