C#实现txt定位指定行完整实例

本文实例讲述了C#实现txt定位指定行的方法。分享给大家供大家参考。具体实现方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
namespace WfpApp
{
 class PositionNotepad
 {
 [DllImport("User32.dll", EntryPoint = "FindWindow")]
 private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 [DllImport("user32.dll")]
 static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
 [DllImport("user32.dll")]
 static extern bool SetForegroundWindow(IntPtr hWnd);
 ///<summary>
 /// 定位到txt文件指定行
 ///</summary>
 ///<param name="strFullName">文件路径</param>
 ///<param name="strRow">指定行</param>
 ///<returns>定位是否成功</returns>
 public static bool PositionNotePad(string strFullName, string strRow)
 {
  int iRow;
  int.TryParse(strRow, out iRow);
  if (iRow <= 0)
  {
  return false;
  }
  //查看当前文件是否已打开
  IntPtr hwnd = FindWindow("Notepad", string.Format("{0} - 记事本", Path.GetFileName(strFullName)));
  if (hwnd.ToInt32() == 0)
  {
  Process p = 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}"); //选中当前行
  return true;
  }
  else
  {
  hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Edit", string.Empty);
  if (hwnd.ToInt32() == 0)
   return false;
  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}"); //选中当前行
  }
  }
  return true;
 }
 }
}

调用:

string path = @"C:\Users\ZKK\Desktop\English.txt";
bool res = PositionNotepad.PositionNotePad(path, "5");

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#定位txt指定行的方法小例子

    复制代码 代码如下: [DllImport("User32.dll", EntryPoint = "FindWindow")]            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);            [DllImport("user32.dll")]            static extern IntPtr

  • C#操作txt文件,进行清空添加操作的小例子

    复制代码 代码如下: //把txt清空            FileStream stream = File.Open(Adr,FileMode.OpenOrCreate,FileAccess.Write);            stream.Seek(0, SeekOrigin.Begin);            stream.SetLength(0);            stream.Close();            //向txt里面追加信息            Strea

  • c#数据库与TXT导入导出的实例

    复制代码 代码如下: private void button1_Click(object sender, EventArgs e)              {                  if (openFileDialog1.ShowDialog() == DialogResult.OK)        {               using (FileStream fs = File.OpenRead(openFileDialog1.FileName))       {     

  • c#.NET 写txt文件小例子

    在这之前你可以判断一下你想存在的文件是否存在,如果存在就保存,如果不存在就保存 写入文件代码:StreamWriter wr = new StreamWriter(Server.MapPath("saveFile.txt"),false,System.Text.Encoding.Default);     try    {     wr.Write("这里是内容");     wr.Close();      Response.Write("<scr

  • C#逐行读取txt文件的方法

    本文实例讲述了c#逐行读取txt文件的方法,是C#程序设计中非常实用的技巧,分享给大家供大家参考. 具体方法如下: private void importTxtNoAdd() { string line; string sFileName = ""; if (openFileDialog1.ShowDialog() == DialogResult.OK) { sFileName = openFileDialog1.FileName; dtTemp.Rows.Clear(); iXH =

  • C#实现EXCEL数据到TXT文档的转换

    C#数据转换前excel中的数据格式如下:设备名称 规格型号 设备编号  使用部门 固定资产编号电脑1 IBM5660 10001 管理部 100010001电脑2 IBM5661 10002 研发部 100010002电脑3 IBM5662 10003 管理部 100010003C#数据转换到TXT文档的格式:"检测设备资产标签","设备名称","电脑1","规格型号","IBM5660","设

  • C#实现把txt文本数据快速读取到excel中

    今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll   在项目中引用. 编写代码如下: string path = "c://date//xyu.txt"; StreamReader sr = new StreamReader(path); string strLine = sr.ReadLine(); int rowNum = 1;

  • C#处理文本文件TXT实例详解

    本文实例讲述了C#处理文本文件TXT的方法.分享给大家供大家参考.具体分析如下: 1. 如何读取文本文件内容: 这里介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来.要读取文本文件,必须使用到"StreamReader"类,这个类是由名字空间"System.IO"中定义的.通过"StreamReader"类的"ReadLine()"方法,就可以读取打开数据流当前行 的数据了.下面代码实现的功能就是读取

  • C#读写txt文件多种方法实例代码

    1.添加命名空间 复制代码 代码如下: System.IO;System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. 复制代码 代码如下: byte[] byData = new byte[100];        char[] charData = new char[1000];        public void Read()        {            try            {          

  • c# 读取文件内容存放到int数组 array.txt

    复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

随机推荐