十六进制数赋值到一个数组
请问如何读取.txt文本文件带空格的十六进制数并赋值到一个数组里。刚学VC有点搞不懂文本文件的内容类似于 74 00 FB FD FF FE 12 34 68 0A BC ........中间是带空格的,有好多文件大小不
一,也就是说文件内容长度都不等。我想把它赋值到数组里类似于,
a[1]=0x74,a[2]=0x08,a[3]=0xFB,a[4]=0xFD........最近急用啊!哪个大神提供解决这个问题的代码,分都
给他。虽然就剩这么点分了.....
另外一个问题,有兴趣的也可以帮忙解决下:http://bbs.csdn.net/topics/390530481
C# --------------------编程问答-------------------- 不要指定读取某一个文件的数据。我做的是窗体应用程序,有“打开”按钮,可以选择读入某个文件,把其中的数据存到数组中 --------------------编程问答-------------------- 初学,用C#编写程序很头疼啊 --------------------编程问答--------------------
--------------------编程问答--------------------
//你可以从文件读
string txt = "74 00 FB FD FF FE 12 34 68 0A BC";
//根据空格分割字符串成字符串数组
string[] hexWords = txt.Split(' ');
//转换成16进制数存储在byte类型数组中
byte[] hex = new byte[hexWords.Length];
for (int i = 0; i < hexWords.Length; i++)
{
hex[i] = Convert.ToByte(hexWords[i],16);
}
--------------------编程问答--------------------
using (StreamReader sr = new StreamReader(@"D:\1.txt"))
{
string text = sr.ReadToEnd();
MatchCollection matches = Regex.Matches(text, "[0-9A-E]{2}");
string[] a = new string[matches.Count];
for (int i = 0; i < matches.Count; i++)
{
a[i] = "0x" + matches[i].Value;
}
foreach (string i in a)
{
Console.WriteLine(i);
}
sr.Close();
}
--------------------编程问答-------------------- byte[] result = "74 00 FB FD FF FE 12 34 68 0A BC".Split(' ').Select(x => (byte)Convert.ToInt32(x, 16)).ToArray(); --------------------编程问答-------------------- 打开文件,每byte读,遇到空格就不存,不是空格就推倒list<byte>里
using (StreamReader sr = new StreamReader(@"D:\1.txt"))
{
string text = sr.ReadToEnd();
MatchCollection matches = Regex.Matches(text, "[0-9A-F]{2}");
string[] a = new string[matches.Count];
for (int i = 0; i < matches.Count; i++)
{
a[i] = "0x" + matches[i].Value;
}
foreach (string i in a)
{
Console.WriteLine(i);
}
sr.Close();
}
不考虑效率就这么做 --------------------编程问答-------------------- 这样指定了一个文件using (StreamReader sr = new StreamReader(@"D:\1.txt"))
我想不要指定读取某一个文件的数据。我做的是窗体应用程序,有“打开”按钮,可以选择读入某个文件,把其中的数据存到数组中 --------------------编程问答-------------------- 我是要从.txt文件中读取数据,不是这样指定几个数据 --------------------编程问答-------------------- 我是要从.txt文件中读取数据,不是这样指定几个数据 --------------------编程问答--------------------
我注释那里不是说明了吗?//你可以从文件读,读文件操作上面的朋友已经给出了,至于指定路径你可以从OpenDialog对象中取得文件路径,这些你就慢慢写写吧,我给出思路而已 --------------------编程问答--------------------
打开文件,每byte读,遇到空格就不存,不是空格就推倒list<byte>里
不考虑效率就这么做
private void button1_Click(object sender, EventArgs e)我这个程序中,用byte读取的数据不是十六进制数了,郁闷。而且连空格也读进去了。比如FB FD是两个十六进制数,它读进去的时候把F、B、空格、F、D分别存进数组了。本来是存进两个数组的。我不知道怎么修改这个程序,求大家指点 --------------------编程问答--------------------
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\Desktop\\";
openFileDialog1.Filter = "*.txt|*.txt";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (openFileDialog1.FileName != "")
{
FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open);
byte[] by_temp;
by_temp = new byte[(int)fs.Length];
int int_readlength;
int_readlength = fs.Read(by_temp, 0, (int)fs.Length);
fs.Close();
string str = openFileDialog1.FileName;
string strTemp = null;
StreamReader reader = new StreamReader(str, System.Text.Encoding.Default);
string strLine = reader.ReadLine();
while (strLine != null)
{
strTemp += strLine;
strLine = reader.ReadLine();
}
richTextBox1.Text = strTemp;
}
}
}
我是要从.txt文件中读取数据,不是这样指定几个数据
//你可以从文件读
string txt = "74 00 FB FD FF FE 12 34 68 0A BC";
//根据空格分割字符串成字符串数组
string[] hexWords = txt.Split(' ');
//转换成16进制数存储在byte类型数组中
byte[] hex = new byte[hexWords.Length];
for (int i = 0; i < hexWords.Length; i++)
{
hex[i] = Convert.ToByte(hexWords[i],16);
}
我注释那里不是说明了吗?//你可以从文件读,读文件操作上面的朋友已经给出了,至于指定路径你可以从OpenDialog对象中取得文件路径,这些你就慢慢写写吧,我给出思路而已
我是要从.txt文件中读取数据,不是这样指定几个数据
//你可以从文件读
string txt = "74 00 FB FD FF FE 12 34 68 0A BC";
//根据空格分割字符串成字符串数组
string[] hexWords = txt.Split(' ');
//转换成16进制数存储在byte类型数组中
byte[] hex = new byte[hexWords.Length];
for (int i = 0; i < hexWords.Length; i++)
{
hex[i] = Convert.ToByte(hexWords[i],16);
}
我注释那里不是说明了吗?//你可以从文件读,读文件操作上面的朋友已经给出了,至于指定路径你可以从OpenDialog对象中取得文件路径,这些你就慢慢写写吧,我给出思路而已
--------------------编程问答--------------------
btnClick 打开文件对话框事件
OpenDialog dialog=new OpenDialog();
if(dialog.ShowDialog()==DialogResult.OK)
{
using(StreamReader sr = new StreamReader(dialog.FileName))
{
string txt = sr.ReadToEnd();
//根据空格分割字符串成字符串数组
string[] hexWords = txt.Split(' ');
//转换成16进制数存储在byte类型数组中
byte[] hex = new byte[hexWords.Length];
for (int i = 0; i < hexWords.Length; i++)
{
hex[i] = Convert.ToByte(hexWords[i],16);
}
}
}
byte[] result = "74 00 FB FD FF FE 12 34 68 0A BC".Split(' ').Select(x => (byte)Convert.ToInt32(x, 16)).ToArray();
http://msdn.microsoft.com/zh-cn/library/0a7fscd0(v=vs.80).aspx --------------------编程问答--------------------
看看这个
http://msdn.microsoft.com/zh-cn/library/0a7fscd0(v=vs.80).aspx
这个一维数组的基本知识我以前看过,好像都要定长的。我从文件中读取数据是不定长的(就是不知道文件中有多少数据)
看看这个
http://msdn.microsoft.com/zh-cn/library/0a7fscd0(v=vs.80).aspx
且看14楼
补充:.NET技术 , C#