C#里怎么在文本文件里按行读取数据

就是说有个文本,里面有数据,但是格式上可能会有些行是说明性的

就像问题这样,前两行是说明,然后数据在下面
1 2 3 4 5 6 7
2 3 4 5 6 7 8
3 4 5 6 7 8 9
然后又有说明性的文字,再来点数据
9 8 7 6 5 4 3
那么我想按行依次读取第三行(1-7那行),第四行(2-8),第五行(3-9)什么的
该怎么写啊,readline好像只能读取一行啊,怎么定位到某一行

private void Form1_Load(object sender, EventArgs e)
{
int j=0;
label1.Text= FileRowText(@"c:\update.dat",2, ref j);
}

#region 获取文本某行数据
///
/// 获取文本文件某行数据
///
/// 文本文件路径
/// 第几行
/// 返回总行数
///
private string FileRowText(string filePath,int i, ref int j)
{

StreamReader sr = File.OpenText(filePath);
string str = "";
string text = "";
int num = 0;
while ((str = sr.ReadLine()) != null)
{
num++;
if (num == i)
{
text = str;
}
}
j = num;
sr.Close();
return text;
}
#endregion
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-10
再读取数据的循环外定义一个变量,里面变量++,即判断每隔2行才读取一些数据。如果数据格式是有规律的话,还可以用正则表达式来判断。追问

我的意思就是怎么样才可以跳过几行来读数据

追答

如果你的注释长度是固定的,而且之后的数据也是固定的,那么可以
int i=0;
while(reader.Read())
{
i+=i;
if(i>你要跳的行数)
{
读数据
}

}

第2个回答  2013-10-10
StreamReader sr=new StreamReade("文件名");
string s=sr.ReadLine();
while(s !=null)
{
s=sr.ReadLine();//读取每行
}追问

这个是什么原理,怎么实现读某一行的

追答

这个采用字符流读取模式了 那个函数是字符流自带的行读取功能

追问

意思是连说明性的文字也一起读取了?那不是还得加个判断

追答

对于每行的读取数据,你可以在另处理,需要的就保留,不需要的你就不处理了

本回答被提问者和网友采纳
相似回答