c# 读取文本文件多行的 某几列数据 (转)
一、文本文件需要具备的条件:
每一行文件格式固定、并且字符串以空格相隔开的
如一下数据:
1 BAIS 59211 106.60625 23.90337 160.4409 2009-12-31 14:00:0
2 BFLJ 56651 100.21865 26.84876 2353.5596 2009-12-31 14:00:0
3 CQBB 57511 106.44344 29.84245 217.4292 2009-12-31 14:00:0
二、处理思路:
用循环语句,将数据存到数组中并以空格分割,需要的命名空间using System.IO;
三、代码:
StreamReader sr = new StreamReader(File.Open("文件名", FileMode.Open), Encoding.GetEncoding("GB2312"));
while (true)
{
string line = sr.ReadLine();
if (line == string.Empty || line == null) break;
string[] data = line.Split(' ');
ArrayList mydata = new ArrayList();
for (int i = 0; i < data.Length; i++)
{
if (data[i].Trim() != string.Empty)
{
mydata.Add(data[i].Trim());
}
}
}
读出来的mydata[0],mydata[1]........
分别是每行的第一列 第二列................
方式二:
while (strLine2 != null)
{
data = strLine2.Split(' ');
//将一行数据写入数组data中,写入时以空格为分割(间隔),意思是空一格写一个数据
ArrayList mydata = new ArrayList();//动态移动数组
for (int i = 0; i < data.Length; i++)
{
if (data[i].Trim() != string.Empty)
{
mydata.Add(data[i].Trim());
}
}
strLine2 = sr.ReadLine();
richTextBox1.Text += mydata[1].ToString() + mydata[2].ToString() + " "; //此处选出对应的数组写入richTextBox1 }
处理的数据
年 月 日 温度
1956 9 18 380
1956 5 4 280
1956 4 10 358
1957 6 4 352