Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

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

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 18.03.2012, 09:59   #1
 Разведчик
Аватар для werseche
 
werseche скоро будет известенwerseche скоро будет известенwerseche скоро будет известенwerseche скоро будет известенwerseche скоро будет известен
Регистрация: 27.01.2012
Сообщений: 24
Популярность: 483
Сказал(а) спасибо: 57
Поблагодарили 23 раз(а) в 17 сообщениях
 
Question Получить массив байтов файла

Есть такой код конвертера фаилов в байты:
Код:
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 };
            }
        }
  }
}
Программa выдает код такого вида
Цитата:
{ 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, 111, 68, 242, 0, 0, 0 };

Как привести его к коду такого вида

Цитата:
{ 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};

И если это возможно, то сразу подсчитать количество полученных байтов и вывести это число в ТекстБокс...
  Ответить с цитированием
Старый 18.03.2012, 11:21   #2
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Получить массив байтов файла

Код:
       OpenFileDialog dialog = new OpenFileDialog();
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            BinaryReader reader = new BinaryReader(new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read));
            byte[] buffer = reader.ReadBytes((int) reader.BaseStream.Length);
            reader.Close();
            string str = "BYTE myFile[] = {";
            for (int i = 0; i < buffer.Length; i++)
            {
                try
                {
                    str = str + " 0x" + buffer[i].ToString("X");
                    if (i != (buffer.Length - 1))
                    {
                        str = str + ",";
                    }
                    else
                    {
                        str = str + "};";
                    }
                }
                catch (Exception)
                {
                }
            }
            BinaryWriter writer = new BinaryWriter(new FileStream("output.txt", FileMode.Create, FileAccess.Write));
            writer.Write(str);
            writer.Close();
            MessageBox.Show("Done");
        }
  Ответить с цитированием
Пользователь сказал cпасибо:
werseche (19.03.2012)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сборник моих байтов после обновы! Hacker-Pro №1 Общение и обсуждение CrossFire 6 19.09.2011 15:19
[Помогите!] Массив blad56 Вопросы и ответы, обсуждения 8 03.09.2011 23:23
[Пакеты] Много байтов! xakerO_o Cheat Engine, модификаторы памяти 8 16.08.2011 21:32

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 03:09.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net