C# 如何定位到TXT文档的某一行??

娃ha哈 2011-04-26 09:25:34
需求:打开TXT文档,并且把光标移动到TXT文档的指定行首。
请问大神们 如何实现啊?
...全文
805 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwbox 2011-04-27
  • 打赏
  • 举报
回复
超大文本的话,会让人崩溃的。
建议先建立索引文件。
再用内存映射文件的办公打开文本文件,直接定位。
kingdom_0 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 xxoo2007 的回复:]

这个只能在FORM下工作,Web的就不要试了
C# code
private void button1_Click(object sender, EventArgs e)
{
Process p = Process.Start(@"notepad.exe",@" D:\LUKE\LukeWikipedia\模拟登录.txt");
……
[/Quote]学习了。
xxoo2007 2011-04-27
  • 打赏
  • 举报
回复
这个只能在FORM下工作,Web的就不要试了
  private void button1_Click(object sender, EventArgs e)
{
Process p = Process.Start(@"notepad.exe",@" D:\LUKE\LukeWikipedia\模拟登录.txt");
p.WaitForInputIdle(1000); //等一秒,等文本打开,焦点去到notepad

SendKeys.SendWait("{DOWN 6}"); //向下移动6行
SendKeys.SendWait("{HOME}"); //行首
SendKeys.SendWait("+{END}"); //选中当前行


}
Icedmilk 2011-04-26
  • 打赏
  • 举报
回复
难道你说的光标是文件指针?
[Quote=引用 7 楼 hanyuwen007 的回复:]
引用 6 楼 icedmilk 的回复:
你用什么空间放的这个TXT文件?


?什么意思,我现在不是想操作一整个的TXT文件,我是想让光标定位到TXT文件内某行的行首。
[/Quote]
b327114069 2011-04-26
  • 打赏
  • 举报
回复
?丫丫。没看懂
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 icedmilk 的回复:]
你用什么空间放的这个TXT文件?
[/Quote]

?什么意思,我现在不是想操作一整个的TXT文件,我是想让光标定位到TXT文件内某行的行首。
Icedmilk 2011-04-26
  • 打赏
  • 举报
回复
你用什么空间放的这个TXT文件?
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
LS 没明白需求吧?
advisd 2011-04-26
  • 打赏
  • 举报
回复
StreamReader sr=new StreamReader("C:\\a.text");
sr.ReadLine();
网上飘 2011-04-26
  • 打赏
  • 举报
回复
读换行标记吧
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
比如我想将光标移动到第10行内容的行首(在有足够多的行数内容)
xiongxyt2 2011-04-26
  • 打赏
  • 举报
回复

using System.IO;
StreamReader sr = new StreamReader(@"E:\WebPage\2011-04-12\248808221\250167153.txt");//你的txt文件路径
int i=0;
string rowstring = "";
while (sr.Peek() > 0)
{
rowstring = sr.ReadLine();// 获取当前行字符串
i++;//用于标记现在读到第几行
if(i==你自己想要的行号)

break;

}
sr.Close();





ycproc 2011-04-26
  • 打赏
  • 举报
回复
txt 相当于一个字符串

给标记除非
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xxoo2007 的回复:]
哦记事本啊,那个没有程序接口的啊。可能需要通过模拟键盘的方式了,用过游戏外挂没?差不多就是那种东西。C#一般用System.Windows.Forms.SendKeys发送指令,前提是光标在记事本上。DOWN ARROW(下箭头键){DOWN}。DOWN几下就几行,HOME{HOME}去到行首
[/Quote]
记事本打开一个TXT文件,默认是有光标的,
请问你有例程吗?没有用过你说的这种方法也。
xxoo2007 2011-04-26
  • 打赏
  • 举报
回复
哦记事本啊,那个没有程序接口的啊。可能需要通过模拟键盘的方式了,用过游戏外挂没?差不多就是那种东西。C#一般用System.Windows.Forms.SendKeys发送指令,前提是光标在记事本上。DOWN ARROW(下箭头键){DOWN}。DOWN几下就几行,HOME{HOME}去到行首
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xxoo2007 的回复:]
1. 用的什么控件加载的TXT。这个和控件关系比较大,有些带定位函数,有些没有。

2. 用什么逻辑确定的需要移动到第几行?是记录下用户最后看的位置么?

3. 可以尝试使用模拟键盘操作来做,发几个下箭头的代码,就能下移几行
[/Quote]
谢谢您的回答

1,没有用任何控件加载,就是直接记事本方式打开TXT,然后定位到行首。
2,逻辑和程序其他部分有关,大致的意思就是某一行出现了错误,需要快速定位到该行行首。(该TXT文本行数很多,所以手动去找很慢)
3,不适合手动去找寻,方案不符合。

xxoo2007 2011-04-26
  • 打赏
  • 举报
回复
1. 用的什么控件加载的TXT。这个和控件关系比较大,有些带定位函数,有些没有。

2. 用什么逻辑确定的需要移动到第几行?是记录下用户最后看的位置么?

3. 可以尝试使用模拟键盘操作来做,发几个下箭头的代码,就能下移几行
Icedmilk 2011-04-26
  • 打赏
  • 举报
回复
你放文本的地方是个控件吗?
娃ha哈 2011-04-26
  • 打赏
  • 举报
回复
自己写的程序里,想加入这个功能!
Icedmilk 2011-04-26
  • 打赏
  • 举报
回复
是在你自己写的程序里?
还是别的什么程序?
[Quote=引用 10 楼 hanyuwen007 的回复:]
To test.exe
不是文件指针,是鼠标的那个光标啊,就是将焦点移动到某行的行首。(因为文件量很大,慢慢去鼠标移动很慢很麻烦)
难道说我的表述有问题???

举个例子,一般的开发环境都有一个find功能,就是找寻关键字,并且快速定位到你所输入的关键字的位置。
我想实现的功能类似这种功能,只不过只需定位到指定的某行就行了。
[/Quote]
加载更多回复(2)

110,533

社区成员

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

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

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