作者chiuyiming (chiuyiming)
看板C_Sharp
标题[问题] 请问 C# 读 .txt 档的方法?
时间Fri Sep 5 15:34:25 2008
大家好!!
请教各位前辈,我把数字 2971 拆成 低位元 71 及 高位元 29 传送,并传送 'A'
作为来源的识别,我用 C# 接收写成文字档案後,计画从文字档中读取字元取得他的16
进制数值,作高低位元组合,还原 2971 的动作,以便做後续的数学运算。但是在转换
的部份,发生困难,恳请各位前辈指正错误,谢谢!!
**************************************************************************
以下为接收写成的文字档案 C:\receiveData.txt
A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A? AA? A? A? A? A? A? A? A? A
? A? A? A? A A? A? A? AA? A? A? A? A? A? A? A? A? A? A? A? A? A? A? A?
AA? A? A? A? A? A? A? A? A A? A? A? A? A? A? A? AA? A? A? A? A? A? A?
A? A? A? A? A? A? A? A? A? AA? A? A? A? A A? A? A? A? A? A? A? A? A
private void button3_Click(object sender, EventArgs e)
{
string str;
int position;
int result_Low;
int result_High;
string result;
StreamReader sr = new StreamReader(@"C:\receiveData.txt");
str = sr.ReadToEnd(); // 读取整篇文字档案
textBox1.Text = str; // 显示文字档案
position = str.IndexOf('A'); // Indexof:字串中搜寻字元,传回特定字元在
字串中的索引位置
while (position != -1) // 字串中如果找不到'A',回传 -1
{
richTextBox1.Text += position.ToString(); // 显示'A'的位置
richTextBox1.Text += '\n'; // 显示换行
richTextBox1.Text += str.Substring(position, 3); // Substring:取得子字串
//************* 以下开始发生转换错误讯息***********************
result_Low = Convert.ToInt16(str.Substring(position + 1, 1));
result_High = Convert.ToInt16(str.Substring(position + 2, 1));
result = ((result_High << 8) | result_Low).ToString();
//*************************************************************
richTextBox1.Text += '\n'; // 显示换行
str = str.Remove(position, 3); // Remove : 移除指定位置的指定长度字串
FileInfo fileInfo = new FileInfo(@"C:\result.txt");
// 开启新增的文字档案
StreamWriter sw = fileInfo.AppendText();
sw.WriteLine(result);
sw.Flush(); // 将缓冲区资料写入档案
sw.Close(); // 关闭档案
position = str.IndexOf('A'); // 再做一次搜寻字元回传值给 while 作判断
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.27.180