 |
Получить массив байтов файла - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
18.03.2012, 10:59
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 27.01.2012
 Сообщений: 24
 Популярность: 483
 Сказал(а) спасибо: 57
Поблагодарили 23 раз(а) в 17 сообщениях
|
Получить массив байтов файла
Есть такой код конвертера фаилов в байты:
Код:
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, 12:21
|
#2
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 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пасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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, время: 06:43.
|
 |