C#实现txt定位指定行完整实例
本文实例讲述了C#实现txt定位指定行的方法。分享给大家供大家参考。具体实现方法如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Diagnostics;
usingSystem.IO;
usingSystem.Runtime.InteropServices;
namespaceWfpApp
{
classPositionNotepad
{
[DllImport("User32.dll",EntryPoint="FindWindow")]
privatestaticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName);
[DllImport("user32.dll")]
staticexternIntPtrFindWindowEx(IntPtrhwndParent,IntPtrhwndChildAfter,stringlpszClass,stringlpszWindow);
[DllImport("user32.dll")]
staticexternboolSetForegroundWindow(IntPtrhWnd);
///<summary>
///定位到txt文件指定行
///</summary>
///<paramname="strFullName">文件路径</param>
///<paramname="strRow">指定行</param>
///<returns>定位是否成功</returns>
publicstaticboolPositionNotePad(stringstrFullName,stringstrRow)
{
intiRow;
int.TryParse(strRow,outiRow);
if(iRow<=0)
{
returnfalse;
}
//查看当前文件是否已打开
IntPtrhwnd=FindWindow("Notepad",string.Format("{0}-记事本",Path.GetFileName(strFullName)));
if(hwnd.ToInt32()==0)
{
Processp=Process.Start(@"notepad.exe",strFullName);
//等一秒,等文本打开,焦点去到notepad
p.WaitForInputIdle(1000);
System.Windows.Forms.SendKeys.SendWait("{DOWN"+(iRow-1)+"}");
System.Windows.Forms.SendKeys.SendWait("{HOME}");//行首
System.Windows.Forms.SendKeys.SendWait("+{END}");//选中当前行
returntrue;
}
else
{
hwnd=FindWindowEx(hwnd,IntPtr.Zero,"Edit",string.Empty);
if(hwnd.ToInt32()==0)
returnfalse;
else
{
SetForegroundWindow(hwnd);
System.Windows.Forms.SendKeys.SendWait("^{HOME}");//将光标定位到首行
System.Windows.Forms.SendKeys.SendWait("{DOWN"+(iRow-1)+"}");
System.Windows.Forms.SendKeys.SendWait("{HOME}");//行首
System.Windows.Forms.SendKeys.SendWait("+{END}");//选中当前行
}
}
returntrue;
}
}
}
调用:
stringpath=@"C:\Users\ZKK\Desktop\English.txt"; boolres=PositionNotepad.PositionNotePad(path,"5");
希望本文所述对大家的C#程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短