Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/75: Рейтинг темы: голосов - 75, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 02.03.2012
Сообщений: 53

Получить массив байтов файла

17.03.2012, 21:01. Показов 14951. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой код конвертера фаилов в байты:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace ToByte
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "Выбрать фаил";
            openFileDialog1.FileName = "";
            openFileDialog1.ShowDialog();
 
            if (openFileDialog1.FileName != "")
            {
                byte[] byFileData = ReadLocalFile(openFileDialog1.FileName);
               StringBuilder sbOutput = new StringBuilder();
                
                sbOutput.Append(" { ");//начало
                
                for (int iLoop = 0; iLoop < byFileData.Length; iLoop++)
                {
                    if (iLoop > 0) sbOutput.Append(", ");//разделитель
                    sbOutput.Append(byFileData[iLoop].ToString());
                }
                
                sbOutput.Append(" };");//конец
                textBox1.Text = sbOutput.ToString();
 
                Clipboard.SetDataObject(textBox1.Text, true);
            }
            
        }
 
        public byte[] ReadLocalFile(string sLocalFile)
        {
            try
            {
                using (FileStream oFS = new FileStream(sLocalFile, FileMode.Open, FileAccess.Read))
                {
                    using (BinaryReader oBR = new BinaryReader(oFS))
                    {
                        return oBR.ReadBytes((int)oFS.Length);
                    }
                }
            }
            catch
            {
                return new byte[] { 0 };
            }
        }
}
}
Программы выдает код такого вида
Code
1
 { 66, 77, 60, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 6, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [COLOR="Red"]111[/COLOR], 68, [COLOR="red"]242[/COLOR], 0, 0, 0 };
Как привести его к коду такого вида
Code
1
{ 0x42, 0x4D, 0x3C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x12, 0xB, 0x0, 0x0, 0x12, 0xB, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6F, 0x44, 0xF2, 0x0, 0x0, 0x0};
И если это возможно, то сразу подсчитать количество полученных баитов...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2012, 21:01
Ответы с готовыми решениями:

Считать с файла массив байтов максимум по 4мб в строке
Нужно считать массив байтов из файла и превратить в строку. Вот собственно как я это делаю: using (StreamWriter file = new...

Записать массив строк в файл, а потом получить такой же массив из этого файла
Есть вот такой массив, который формируется из разных чтрок: string temp = {dateTimePicker1.Value.ToString(), gender, label6.Text}; ...

Получить символы из байтов в кодировке ASCII (DOS)
Доброго времени суток. Имею файл (в приложении изображение), хотел из него извлечь имя параметра, получил в массиве набор байт, но получить...

3
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
18.03.2012, 11:48
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Linq;
using System.Windows.Forms;
using System.IO;
 
class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        OpenFileDialog dialog = new OpenFileDialog();
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            byte[] a = File.ReadAllBytes(dialog.FileName);
            string s = "{" +
                string.Join(", ",
                    a.Select(x => string.Format("0x{0}", x.ToString("X")))
                ) + "}";
            Console.WriteLine(s);
            Console.ReadKey(true);
        }
    }
}
1
0 / 0 / 1
Регистрация: 02.03.2012
Сообщений: 53
19.03.2012, 13:26  [ТС]
Спосибо за подсказку, но я зделал немного по другому)
Еще вопрос: Можно ли подсчитать количество получившихся байтов и вывести это число в текстБокс?
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
20.03.2012, 11:55
Цитата Сообщение от qazwar Посмотреть сообщение
Можно ли подсчитать количество получившихся байтов и вывести это число в текстБокс?
количество байтов это и есть размер файла, используйте Length
C#
1
2
3
4
5
6
7
8
var ofd = new OpenFileDialog();
      if (ofd.ShowDialog() == DialogResult.OK)
      {
          using (var read = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read))
          {
              textBox1.Text = read.Length.ToString();
          }
      }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2012, 11:55
Помогаю со студенческими работами здесь

Преобразовать массив байтов в массив строк
Собствено нужно преобразовать массив байтов в массив строк=) пример a = 71 b = 71(string)

Получить строковый массив из файла
написать консольное приложение! вообщем нужно чтобы строковый массив брал текст из файла и потом считал колличество символов! поможете?

Получить знаковое шестнадцати разрядное целое число из двух байтов
Задача: поймать и обработать данные, поступающие с акселерометра через виртуальный ком-порт. Данные передаются в виде двух байт: младшего и...

Чтение байтов из файла
Здравсвуйте! Есть файл в котором записвны числа 1234567890. Есть такой код int amount, sum = 0; byte Array = new byte; ...

Массив байтов b = b + b1
Есть массив байтов. byte b1; и byte b; надо в цикле делать следуещее b = b + b1; Как это сделать правильно.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник 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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru