C#中 如何读取TXT文件第N行内容

luckymjl 2008-03-26 11:15:47
C#中 如何读取TXT文件第N行内容
或第N行后的关键字怎么取
...全文
1297 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhao_zps 2011-08-06
  • 打赏
  • 举报
回复
循环读取下一条即可,设个计数器变量
huangwenquan123 2011-08-06
  • 打赏
  • 举报
回复
要获取第n行之后的话
一个循环+索引判断是否大于要读取的行数
在stringbuilder.append
huangwenquan123 2011-08-06
  • 打赏
  • 举报
回复

int n = 3;
string[] str = File.ReadAllLines(Server.MapPath("txttxt.txt"));
if (n < str.Length)
Response.Write(str[3]);
else
Response.Write("超出行数");
  • 打赏
  • 举报
回复
N年前的帖子被挖出来了
sesshoumaru99 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 boblaw 的回复:]

使用下面这个函数
filename===要读的文件名
startline===从第几行开始读
linecount===要读的总行数,如果<1,视为读到文件末尾
C# code

private string ReaderLinesFromFile(string filename,int startLine,int linecount)
{
……
[/Quote]
+1
gomoku 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zzahkj 的回复:]
这样读文件会不会很慢啊?
[/Quote]
是比较慢。

如果能够知道第n行从(比如)23789字节开始,那么就可以直接跳到该位置,进行读写,这是很快的。
但是文本的“行”不固定大小的,我们只能一个一个摸索,找到换行符号,才能确定为一行。

因此从快速存储的角度,不规则的文本并不适合。
这也是数据结构的基本原理。
zzahkj 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhangjjhua 的回复:]
C# code

private string ReaderLinesFromFile(string filename,int startLine)
{
int i = 0;
StringBuilder sb = new StringBuilder();

StreamReader reader ……
[/Quote]这样读文件会不会很慢啊?
zhangjjhua 2008-03-27
  • 打赏
  • 举报
回复
private string ReaderLinesFromFile(string filename,int startLine)
{
int i = 0;
StringBuilder sb = new StringBuilder();

StreamReader reader = new StreamReader(filename);
while (!reader.EndOfStream)
{
if (i >= startLine)
{

sb.Append(reader.ReadLine());
}
else
reader.ReadLine();
i++;

}
reader.Close();
reader.Dispose();
return sb.ToString();
}


这样好象 也可以
boblaw 2008-03-26
  • 打赏
  • 举报
回复
使用下面这个函数
filename===要读的文件名
startline===从第几行开始读
linecount===要读的总行数,如果<1,视为读到文件末尾

private string ReaderLinesFromFile(string filename,int startLine,int linecount)
{
int i = 0;
StringBuilder sb = new StringBuilder();

StreamReader reader = new StreamReader(filename);
while (!reader.EndOfStream)
{
if (i >= startLine)
{
if (linecount < 1)
sb.Append(reader.ReadToEnd());
else
sb.Append(reader.ReadLine());
}
else
reader.ReadLine();
i++;
if (i >= linecount + startLine) break;
}
reader.Close();
reader.Dispose();
return sb.ToString();
}

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧