資源簡介
hex轉(zhuǎn)bin的程序, 支持大于64K的hex, 網(wǎng)上下載的Hex2Bin不支持64k. 包含工程文件, 簡單包裝即可生成一個Hex2Bin的小程序
【核心代碼】 String szLine = "";
String szHex = "";
if (szHexPath == "")
{
MessageBox.Show("請選擇需要轉(zhuǎn)換的目標(biāo)文件! ", "錯誤");
return;
}
StreamReader HexReader = new StreamReader(szHexPath);
while (true)
{
szLine = HexReader.ReadLine(); //讀取一行數(shù)據(jù)
if (szLine == null) //讀完所有行
{
break;
}
if (szLine.Substring(0, 1) == ":") //判斷第1字符是否是:
{
if (szLine.Substring(1, 8) == "00000001")//數(shù)據(jù)結(jié)束
{
break;
}
szHex = szLine.Substring(9, szLine.Length - 11); //讀取有效字符
}
}
HexReader.Close(); //關(guān)閉目標(biāo)文件
Int32 i;
Int32 j = 0;
Int32 Length = szHex.Length;
byte[] szBin = new byte[Length];
pbConvert.Maximum = Length / 2;
for (i = 0; i < Length; i = 2) //兩字符合并成一個16進(jìn)制字節(jié)
{
szBin[j] = (byte)Int16.Parse(szHex.Substring(i, 2), NumberStyles.HexNumber);
j ;
pbConvert.Increment(i);
}
if (szBinPath == "")
{
szBinPath = Path.ChangeExtension(szHexPath, "bin");
tbBinPath.Text = szBinPath;
}
FileStream fBin = new FileStream(szBinPath, FileMode.Create); //創(chuàng)建文件BIN文件
BinaryWriter BinWrite = new BinaryWriter(fBin); //二進(jìn)制方式打開文件
BinWrite.Write(szBin, 0, Length); //寫入數(shù)據(jù)
BinWrite.Flush();//釋放緩存
BinWrite.Close();//關(guān)閉文件
MessageBox.Show("文件轉(zhuǎn)換完成! ", "提示");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
【核心代碼】 String szLine = "";
String szHex = "";
if (szHexPath == "")
{
MessageBox.Show("請選擇需要轉(zhuǎn)換的目標(biāo)文件! ", "錯誤");
return;
}
StreamReader HexReader = new StreamReader(szHexPath);
while (true)
{
szLine = HexReader.ReadLine(); //讀取一行數(shù)據(jù)
if (szLine == null) //讀完所有行
{
break;
}
if (szLine.Substring(0, 1) == ":") //判斷第1字符是否是:
{
if (szLine.Substring(1, 8) == "00000001")//數(shù)據(jù)結(jié)束
{
break;
}
szHex = szLine.Substring(9, szLine.Length - 11); //讀取有效字符
}
}
HexReader.Close(); //關(guān)閉目標(biāo)文件
Int32 i;
Int32 j = 0;
Int32 Length = szHex.Length;
byte[] szBin = new byte[Length];
pbConvert.Maximum = Length / 2;
for (i = 0; i < Length; i = 2) //兩字符合并成一個16進(jìn)制字節(jié)
{
szBin[j] = (byte)Int16.Parse(szHex.Substring(i, 2), NumberStyles.HexNumber);
j ;
pbConvert.Increment(i);
}
if (szBinPath == "")
{
szBinPath = Path.ChangeExtension(szHexPath, "bin");
tbBinPath.Text = szBinPath;
}
FileStream fBin = new FileStream(szBinPath, FileMode.Create); //創(chuàng)建文件BIN文件
BinaryWriter BinWrite = new BinaryWriter(fBin); //二進(jìn)制方式打開文件
BinWrite.Write(szBin, 0, Length); //寫入數(shù)據(jù)
BinWrite.Flush();//釋放緩存
BinWrite.Close();//關(guān)閉文件
MessageBox.Show("文件轉(zhuǎn)換完成! ", "提示");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
代碼片段和文件信息
using?System;
using?System.IO;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
using?System.Globalization;
namespace?Hex2Bin
{
????public?partial?class?frMain?:?Form
????{
????????String?szBinPath?=?““;
????????String?szHexPath?=?““;
????????public?frMain()
????????{
????????????InitializeComponent();
????????}
????????private?void?btnOpenHex_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????pbConvert.Value?=?0;
????????????????if?(openHexDlg.ShowDialog()?==?DialogResult.OK)?//打開轉(zhuǎn)換的目標(biāo)文件
????????????????{
????????????????????szHexPath?=?openHexDlg.FileName;
????????????????????tbHexPath.Text?=?szHexPath;
????????????????}
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????MessageBox.Show(ex.ToString());
????????????}
????????}
????????private?void?btnConvert_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????String?szLine?=?““;
????????????????String?szHex?=?““;
????????????????if?(szHexPath?==?““)
????????????????{
????????????????????MessageBox.Show(“請選擇需要轉(zhuǎn)換的目標(biāo)文件!?????????“?“錯誤“);
????????????????????return;
????????????????}
????????????????
????????????????StreamReader?HexReader?=?new?StreamReader(szHexPath);
????????????????
????????????????while?(true)
????????????????{
????????????????????szLine?=?HexReader.ReadLine();?//讀取一行數(shù)據(jù)
????????????????????if?(szLine?==?null)?//讀完所有行
????????????????????{
????????????????????????break;
????????????????????}
????????????????????if?(szLine.Substring(0?1)?==?“:“)?//判斷第1字符是否是:
????????????????????{
????????????????????????if?(szLine.Substring(1?8)?==?“00000001“)//數(shù)據(jù)結(jié)束
????????????????????????{
????????????????????????????break;
????????????????????????}
????????????????????????szHex?+=?szLine.Substring(9?szLine.Length?-?11);?//讀取有效字符
????????????????????}
????????????????}
????????????????HexReader.Close();?//關(guān)閉目標(biāo)文件
????????????????Int32?i;
????????????????Int32?j?=?0;
????????????????Int32?Length?=?szHex.Length;
????????????????byte[]?szBin?=?new?byte[Length];
????????????????pbConvert.Maximum?=?Length?/?2;
????????????????for?(i?=?0;?i?????????????????{
????????????????????szBin[j]?=?(byte)Int16.Parse(szHex.Substring(i?2)?Numberstyles.HexNumber);
????????????????????j++;
????????????????????pbConvert.Increment(i);
????????????????????
????????????????}
????????????????if?(szBinPath?==?““)
????????????????{
????????????????????szBinPath?=?Path.ChangeExtension(szHexPath?“bin“);
????????????????????tbBinPath.Text?=?szBinPath;
????????????????}
????????????????FileStream?fBin?=?new?FileStream(szBinPath?FileMode.Create);?//創(chuàng)建文件BIN文件
????????????????BinaryWriter?BinWrite?=?new?BinaryWriter(fBin);?//二進(jìn)制方式打開文件
????????????????BinWrite.Write(szBin?0?Lengt
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????120??2009-01-08?16:38??Hex2Bin\Hex2Bin\app.config
?????文件??????14328??2009-01-08?16:38??Hex2Bin\Hex2Bin\bin\Debug\Hex2Bin.vshost.exe
?????文件????????120??2009-01-08?16:38??Hex2Bin\Hex2Bin\bin\Debug\Hex2Bin.vshost.exe.config
?????文件????????490??2007-07-21?02:33??Hex2Bin\Hex2Bin\bin\Debug\Hex2Bin.vshost.exe.manifest
?????文件??????11264??2009-01-08?16:39??Hex2Bin\Hex2Bin\bin\Release\Hex2Bin.exe
?????文件????????120??2009-01-08?16:38??Hex2Bin\Hex2Bin\bin\Release\Hex2Bin.exe.config
?????文件??????24064??2009-01-08?16:39??Hex2Bin\Hex2Bin\bin\Release\Hex2Bin.pdb
?????文件???????4076??2009-01-08?16:36??Hex2Bin\Hex2Bin\frMain.cs
?????文件???????8405??2009-01-08?16:36??Hex2Bin\Hex2Bin\frMain.Designer.cs
?????文件???????6384??2009-01-08?16:36??Hex2Bin\Hex2Bin\frMain.resx
?????文件???????3705??2009-01-08?16:38??Hex2Bin\Hex2Bin\Hex2Bin.csproj
?????文件?????????74??2009-01-06?15:26??Hex2Bin\Hex2Bin\Hex2Bin.csproj.user
?????文件????????309??2009-01-08?15:08??Hex2Bin\Hex2Bin\obj\Debug\Hex2Bin.csproj.FileListAbsolute.txt
?????文件????????848??2009-01-08?15:08??Hex2Bin\Hex2Bin\obj\Debug\Hex2Bin.csproj.GenerateResource.Cache
?????文件????????180??2009-01-08?15:08??Hex2Bin\Hex2Bin\obj\Debug\Hex2Bin.frMain.resources
?????文件????????180??2009-01-08?15:08??Hex2Bin\Hex2Bin\obj\Debug\Hex2Bin.Properties.Resources.resources
?????文件???????1691??2009-01-08?16:38??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.csproj.FileListAbsolute.txt
?????文件????????906??2009-01-08?16:36??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.csproj.GenerateResource.Cache
?????文件??????11264??2009-01-08?16:39??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.exe
?????文件????????180??2009-01-08?16:39??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.frMain.resources
?????文件??????24064??2009-01-08?16:39??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.pdb
?????文件????????180??2009-01-08?16:39??Hex2Bin\Hex2Bin\obj\Release\Hex2Bin.Properties.Resources.resources
?????文件????????469??2009-01-08?09:55??Hex2Bin\Hex2Bin\Program.cs
?????文件???????1392??2009-01-06?14:24??Hex2Bin\Hex2Bin\Properties\AssemblyInfo.cs
?????文件???????2865??2009-01-06?14:24??Hex2Bin\Hex2Bin\Properties\Resources.Designer.cs
?????文件???????5612??2009-01-06?14:23??Hex2Bin\Hex2Bin\Properties\Resources.resx
?????文件???????1092??2009-01-06?14:24??Hex2Bin\Hex2Bin\Properties\Settings.Designer.cs
?????文件????????249??2009-01-06?14:23??Hex2Bin\Hex2Bin\Properties\Settings.settings
?????文件????????915??2009-01-06?15:26??Hex2Bin\Hex2Bin.sln
????..A..H.?????14336??2009-01-08?16:43??Hex2Bin\Hex2Bin.suo
............此處省略16個文件信息
評論
共有 條評論