最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)記事本查找與替換功能

 更新時(shí)間:2019年03月29日 15:57:50   作者:茗香淡然  
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)記事本查找與替換功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

看了網(wǎng)上關(guān)于記事本的查找替換很多,但都沒有達(dá)到我想要的結(jié)果,然后自己學(xué)習(xí)總結(jié)了以下的方法:

統(tǒng)計(jì)字符串(漢字,字母,數(shù)字,字符)

先上效果圖

定義全局變量

#region =★*★*★= 〖查找替換〗的自定義變量 =★*★*★=
  /// <summary> 獲取或設(shè)置查找起始位置 </summary>
  static int Index = 0;
  /// <summary> 查找到的字符串?dāng)?shù)量 </summary>
  static int count = 0;
  /// <summary> 查找字符是否變更
  static string strE = string.Empty;
  /// <summary> 記錄原始光標(biāo)位置 </summary>
  static int MemoIndex = -1;
  /// <summary> 過度字符串變量 </summary>
  static string str = string.Empty;
  /// <summary> 實(shí)例化富文本 </summary>
  static RichTextBox r = new RichTextBox();
  #endregion

向上查找

#region =★*★*★= FindUp() 查找指定〖字符 或 字符串〗 =★*★*★=
  /// <summary>向上查找指定〖字符 或 字符串〗(不區(qū)分大小寫)<para> <para> 
  /// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類型<para> 
  /// 參數(shù)2(str):用戶指定要查找的字符串</para> 
  /// </para></para> </summary> 
  /// <param name="rbox">內(nèi)容文本框,指定為 RichTextBox 文本框類型</param> 
  /// <param name="str">用戶指定要查找的字符串</param> 
  public static void FindUp(RichTextBox rtxt, string str)
  {
   if (strE != str)
   {
    rtxt.SelectionStart = rtxt.Text.Length;
    strE = str;
   }
 
   Index = rtxt.SelectionStart;
   Index = rtxt.Find(str, 0, Index, RichTextBoxFinds.Reverse);
   if (Index >= 0)
   {
    rtxt.SelectionStart = Index;
    rtxt.SelectionLength = str.Length;
    count++;
    rtxt.Focus();
    myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
    if (Index <= 0)
    {
     seeks(str);
     count = 0;
    }
   }
   else if (Index < 0)
   {
    seeks(str);
    count = 0;
   }
  }
  #endregion

向下查找

#region =★*★*★= FindDown() 查找指定〖字符 或 字符串〗=★*★*★=
  /// <summary>向下 查找指定〖字符 或 字符串〗<para> </para> 
  /// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類型 <para></para>
  /// 參數(shù)2(FindStr):用戶指定要查找的字符串<para></para>
  /// 參數(shù)3(TrueFales):bool 真:限定大小寫 假:不分大小寫</summary>
  /// <param name="rbox">內(nèi)容文本框,指定為 RichTextBox 文本框類型</param> 
  /// <param name="FindStr">用戶指定要查找的字符串</param> 
  /// <param name="TrueFales">bool 真:限定大小寫 假:不分大小寫</param> 
  public static void FindDown(RichTextBox rtxt, string FindStr,bool TrueFales)
  {
   if (TrueFales)
    fileFindDownMax(rtxt, FindStr);
   else
    fileFindDownMin(rtxt, FindStr);
  }
  #endregion
 
 
  #region =★*★*★= 簡單的從上到下查找 =★*★*★=
  /// <summary>向下查找指定〖字符 或 字符串〗(限定大小寫)<para> <para> 
  /// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類型 
  /// <para>參數(shù)2(FindStr):用戶指定要查找的字符串</para> 
  /// </para></para> </summary> 
  /// <param name="rbox">內(nèi)容文本框,指定為 RichTextBox 文本框類型</param> 
  /// <param name="FindStr">用戶指定要查找的字符串</param> 
  private static void FindDownmax(RichTextBox rtxt, string FindStr)
  {
   Index = rtxt.Find(FindStr, Index, RichTextBoxFinds.MatchCase);
   if (Index < 0 || Index > rtxt.Text.Length)
   {
    seeks(FindStr);
    count = 0;
    Index = 0;
   }
   else
   {
    rtxt.Select(Index, FindStr.Length);
    myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
    Index += FindStr.Length;
    rtxt.Focus();
   }
  }
 
  /// <summary>向下查找指定〖字符 或 字符串〗(不區(qū)分大小寫)<para> <para> 
  /// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類型 
  /// <para>參數(shù)2(FindStr):用戶指定要查找的字符串</para> 
  /// </para></para> </summary> 
  /// <param name="rbox">內(nèi)容文本框,指定為 RichTextBox 文本框類型</param> 
  /// <param name="FindStr">用戶指定要查找的字符串</param> 
  private static void FindDownMin(RichTextBox rtxt, string FindStr)
  {
   Index = rtxt.Find(FindStr, Index, RichTextBoxFinds.None);
   if (Index < 0 || Index > rtxt.Text.Length)
   {
    seeks(FindStr);
    count = 0;
    Index = 0;
   }
   else
   {
    rtxt.Select(Index, FindStr.Length);
    myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
    Index += FindStr.Length;
    rtxt.Focus();
   }
  }
  #endregion
 
  //* 類似 VS 的查找方法 */
  #region =★*★*★= 類似 VS 的查找方法 =★*★*★=
  /// <summary> 類似 VS 的查找方法(不區(qū)分大小寫向下查找)<para> </para>
  /// 參數(shù)1(txt):RichTextBox文本框<para></para>
  /// 參數(shù)2(FindString):查找字符串</summary>
  /// <param name="txt">RichTextBox文本框</param>
  /// <param name="FindString">查找字符串</param>
  private static void fileFindDownMax(RichTextBox rtxt, string FindString)
  {
   if (MemoIndex < 0)
   {
    MemoIndex = rtxt.SelectionStart;
    if (MemoIndex > 10 && MemoIndex + FindString.Length <= rtxt.Text.Length)
    {
     str = rtxt.Text.Substring(0, MemoIndex + FindString.Length - 1);//截取光標(biāo)位置 + 查找字符數(shù) - 1 位數(shù)
     Index = rtxt.SelectionStart;
     r.Text = str;
    }
    else
    {
     str = rtxt.Text;
     r.Text = rtxt.Text;
     Index = rtxt.SelectionStart;
    }
   }
   if (Index < str.Length - (FindString.Length - 1) && Index >= 0)
   {
    Index = r.Find(FindString, Index, RichTextBoxFinds.None);
    if (Index < 0 || Index > r.Text.Length)
    {
     seeks(FindString);
     count = 0;
     Index = 0;
     MemoIndex = -1;
    }
    else
    {
     rtxt.Select(Index, FindString.Length);
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     rtxt.Focus();
     count++;
 
     Index += FindString.Length;
     if (Index > str.Length - FindString.Length)
     {
      seeks(FindString);
      MemoIndex = -1;
      Index = 0;
      count = 0;
     }
    }
   }
   else if (Index < rtxt.Text.Length && Index >= 0)
   {
    Index = rtxt.Find(FindString, Index, RichTextBoxFinds.None);
    if (Index == -1)//(Index >= txt.Text.Length && Index <= 0)
    {
     if (r.Text != "")
     {
      Index = 0; Index = r.Find(FindString, Index, RichTextBoxFinds.None);
      if (Index < 0 || Index > r.Text.Length)
      {
       seeks(FindString);
       count = 0;
       Index = 0;
       MemoIndex = -1;
      }
      else
      {
       rtxt.Select(Index, FindString.Length);
       myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
       rtxt.Focus();
       Index += FindString.Length;
       count++;
       if (Index > str.Length - FindString.Length)
       {
        seeks(FindString);
        MemoIndex = -1;
        Index = 0;
        count = 0;
       }
      }
     }
     else
     {
      seeks(FindString);
      MemoIndex = -1;
      Index = 0;
      count = 0;
     }
    }
    else
    {
     rtxt.Select(Index, FindString.Length);//在RichTextBox控件中搜索關(guān)鍵字
     Index += FindString.Length;//遞增標(biāo)識查詢關(guān)鍵字的初始長度
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     rtxt.Focus();
     count++;
    }
   }
   else
   {
    Index = 0; Index = r.Find(FindString, Index, RichTextBoxFinds.None);
    if (Index < r.Text.Length - FindString.Length && Index >= 0)
    {
     r.Select(Index, FindString.Length);
     rtxt.Select(Index, FindString.Length);
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     Index += FindString.Length;//遞增標(biāo)識查詢關(guān)鍵字的初始長度
     rtxt.Focus();
     count++;
    }
    else
    {
     seeks(FindString);
     MemoIndex = -1;
     Index = 0;
     count = 0;
    }
   }
  }
 
  /// <summary> 類似 VS 的查找方法(不區(qū)分大小寫向下查找)<para> </para>
  /// 參數(shù)1(txt):RichTextBox文本框<para></para>
  /// 參數(shù)2(FindString):查找字符串</summary>
  /// <param name="txt">RichTextBox文本框</param>
  /// <param name="FindString">查找字符串</param>
  private static void fileFindDownMin(RichTextBox rtxt, string FindString)
  {
   if (MemoIndex < 0)
   {
    MemoIndex = rtxt.SelectionStart;
    if (MemoIndex > 10 && MemoIndex + FindString.Length <= rtxt.Text.Length)
    {
     str = rtxt.Text.Substring(0, MemoIndex + FindString.Length - 1);
     Index = rtxt.SelectionStart;
     r.Text = str;
    }
    else
    {
     str = rtxt.Text;
     r.Text = rtxt.Text;
     Index = rtxt.SelectionStart;
    }
   }
   if (Index < str.Length - (FindString.Length - 1) && Index >= 0)
   {
    Index = r.Find(FindString, Index, RichTextBoxFinds.MatchCase);
    if (Index < 0 || Index > r.Text.Length)
    {
     seeks(FindString);
     count = 0;
     Index = 0;
     MemoIndex = -1;
    }
    else
    {
     rtxt.Select(Index, FindString.Length);
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     rtxt.Focus();
     count++;
 
     Index += FindString.Length;
     if (Index > str.Length - FindString.Length)
     {
      seeks(FindString);
      MemoIndex = -1;
      Index = 0;
      count = 0;
     }
    }
   }
   else if (Index < rtxt.Text.Length && Index >= 0)
   {
    Index = rtxt.Find(FindString, Index, RichTextBoxFinds.MatchCase);
    if (Index == -1)
    {
     if (r.Text != "")
     {
      Index = 0; Index = r.Find(FindString, Index, RichTextBoxFinds.MatchCase);
      if (Index < 0 || Index > r.Text.Length)
      {
       seeks(FindString);
       count = 0;
       Index = 0;
       MemoIndex = -1;
      }
      else
      {
       rtxt.Select(Index, FindString.Length);
       myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
       rtxt.Focus();
       Index += FindString.Length;
       count++;
       if (Index > str.Length - FindString.Length)
       {
        seeks(FindString);
        MemoIndex = -1;
        Index = 0;
        count = 0;
       }
      }
     }
     else
     {
      seeks(FindString);
      MemoIndex = -1;
      Index = 0;
      count = 0;
     }
    }
    else
    {
     rtxt.Select(Index, FindString.Length);//在RichTextBox控件中搜索關(guān)鍵字
     Index += FindString.Length;//遞增標(biāo)識查詢關(guān)鍵字的初始長度
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     rtxt.Focus();
     count++;
    }
   }
   else
   {
    Index = 0; Index = r.Find(FindString, Index, RichTextBoxFinds.MatchCase);
    if (Index < r.Text.Length - FindString.Length && Index >= 0)
    {
     r.Select(Index, FindString.Length);
     rtxt.Select(Index, FindString.Length);
     myColor(rtxt);//設(shè)定關(guān)鍵字為顏色
     Index += FindString.Length;//遞增標(biāo)識查詢關(guān)鍵字的初始長度
     rtxt.Focus();
     count++;
    }
    else
    {
     seeks(FindString);
     MemoIndex = -1;
     Index = 0;
     count = 0;
    }
   }
  }
#endregion

替換 與 全部替換(功能不是很全)

#region =★*★*★= 〖替換〗與〖全部替換〗 =★*★*★=
 
 #region =★*★*★= 單次替換字符串 =★*★*★=
  /// <summary> 替換 </summary>
  /// <param name="rtxt">RichTextBox</param>
  /// <param name="FindString">查找字符串</param>
  /// <param name="ReplString">替換字符串</param>
  /// <param name="TrueFalse">(bool值)區(qū)分大小寫<para> </para>真:區(qū)分<para></para>假:不區(qū)分</param>
  public static void replaces(RichTextBox rtxt, string FindString, string ReplString, bool TrueFalse)
  {
   string txtSt = rtxt.SelectedText;
   if (FindString.Equals(txtSt))
   {
    int fs = FindString.Length;
    int rs = ReplString.Length;
    int cs = fs - rs;
    rtxt.SelectionLength = FindString.Length;
    rtxt.SelectionColor = Color.Coral;
    rtxt.SelectedText = ReplString;//textBox2中放要替換的字符 
    rtxt.Focus();
    MemoIndex = -1;
    rtxt.SelectionStart += cs;
   }
   FindDown(rtxt, FindString, TrueFalse);
  }
 
  #region =★*★*★= 替換字符串 =★*★*★=
  /// <summary>替換字符串<para> </para> 
  /// 參數(shù)1(FindString):查找的內(nèi)容<para></para> 
  /// 參數(shù)2(ReplString):要替換的內(nèi)容 </summary> 
  /// <param name="FindString">查找的內(nèi)容</param> 
  /// <param name="ReplString">要替換的內(nèi)容</param> 
  private static void replace(RichTextBox rtxt, string FindString, string ReplString)
  {
   rtxt.SelectionLength = FindString.Length;
   rtxt.SelectedText = ReplString;//textBox2中放要替換的字符 
   Index = rtxt.SelectionStart;//獲取或設(shè)置光標(biāo)選定位置
  }
  #endregion
  #endregion
 
 
  #region =★*★*★= 〖全部替換〗 =★*★*★=
  /// <summary> 全部替換<para> </para>
  /// 參數(shù)1(txt):RichTextBox 文本框<para></para>
  /// 參數(shù)2(FindString):查找字符串<para></para>
  /// 參數(shù)3(ReplString):替換字符串<para></para>
  /// 參數(shù)4(trueFales):bool 真:區(qū)分大小寫,假:不區(qū)分大小寫</summary>
  /// <param name="txt">RichTextBox 文本框</param>
  /// <param name="FindString">查找字符串</param>
  /// <param name="ReplString">替換字符串</param>
  /// <param name="trueFales">bool 真:區(qū)分大小寫,假:不區(qū)分大小寫</param>
  public static void ReplAll(RichTextBox rtxt, string FindString, string ReplString, bool trueFales)
  {
   if (trueFales)
    onDistinCase(rtxt, FindString, ReplString);
   else
    offDistinCase(rtxt, FindString, ReplString);
  }
 
  #region =★*★*★= 全部替換(區(qū)分/不區(qū)分大小寫) =★*★*★=
  /// <summary> 全部替換(區(qū)分大小寫) </summary>
  /// <param name="rtxt">RichTextBox 文本框</param>
  /// <param name="FindStr">查找字符串</param>
  /// <param name="ReplStr">替換字符串</param>
  private static void onDistinCase(RichTextBox rtxt, string FindStr, string ReplStr)
  {
   while (Index >= 0 || Index <= rtxt.Text.Length)
   {
    int cot = FindStr.Length - ReplStr.Length;
    Index = rtxt.Find(FindStr, Index, RichTextBoxFinds.MatchCase);
    if (Index < 0 || Index > rtxt.Text.Length)
    {
     DialogResult r = MessageBox.Show(string.Format("查找結(jié)束,已經(jīng)為您找到{0}個(gè)結(jié)果。", count),
       "查找結(jié)果-Mxdr溫馨提示!!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     if (r == DialogResult.Yes)
      count = 0;
     Index = 0;
     break;
    }
    else
    {
     rtxt.Select(Index, FindStr.Length);
     replace(rtxt, FindStr, ReplStr);
     Index += FindStr.Length;
     count++;
    }
   }
  }
 
  /// <summary> 全部替換(不區(qū)分大小寫) </summary>
  /// <param name="rtxt">RichTextBox 文本框</param>
  /// <param name="FindStr">查找字符串</param>
  /// <param name="ReplStr">替換字符串</param>
  private static void offDistinCase(RichTextBox rtxt, string FindStr, string ReplStr)
  {
   while (Index >= 0 || Index <= rtxt.Text.Length)
   {
    int cot = FindStr.Length - ReplStr.Length;
    Index = rtxt.Find(FindStr, Index, RichTextBoxFinds.None);
    if (Index < 0 || Index > rtxt.Text.Length)
    {
     DialogResult r = MessageBox.Show(string.Format("查找結(jié)束,已經(jīng)為您找到{0}個(gè)結(jié)果。", count),
       "查找結(jié)果-Mxdr溫馨提示!!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     if (r == DialogResult.Yes)
      count = 0;
     Index = 0;
     break;
    }
    else
    {
     rtxt.Select(Index, FindStr.Length);
     replace(rtxt, FindStr, ReplStr);
     Index += FindStr.Length;
     count++;
    }
   }
  }
  #endregion
  #endregion
 
  #endregion

消息彈窗

#region =★*★*★= 消息提示,提示用戶查找結(jié)果 =★*★*★=
  /// <summary> 消息提示,提示用戶查找結(jié)果<para> <para> 
  /// 參數(shù)1(str):用戶指定要查找的字符串</para></para> </summary> 
  /// <param name="str">用戶指定要查找的字符串</param> 
  public static void seeks(string str)
  {
   if (count != 0)
    MessageBox.Show(string.Format("已查找完畢,共〖{0}〗個(gè) \"{1}\"!", count, str), "查找結(jié)果-Mxdr溫馨提示!!");
   else MessageBox.Show(string.Format("沒有查找到 \"{0}\"!", str), "查找 - Mxdr溫馨提示!");
  }
  #endregion

查找字符著色

#region =★*★*★= 查找字符上色 =★*★*★=
  /// <summary> 查找字符上色 </summary>
  /// <param name="rtxt">RichTextBox</param>
  private static void myColor(RichTextBox rtxt)
  {
   rtxt.SelectionColor = Color.Coral;
  }
  #endregion

以上都為個(gè)人的理解,有不全的地方請各位能指點(diǎn)迷津。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 設(shè)計(jì)模式系列教程-策略模式

    C# 設(shè)計(jì)模式系列教程-策略模式

    策略模式是一種定義一系列算法的方法,從概念上來看,所有算法完成的都是相同的工作,只是實(shí)現(xiàn)不同,它可以以相同的方式調(diào)用所有的算法,減少了各種算法類與使用算法類之間的耦合。
    2016-06-06
  • C#加密算法匯總(推薦)

    C#加密算法匯總(推薦)

    以下是對C#中的加密算法進(jìn)行了匯總介紹,需要的朋友可以過來參考下
    2013-09-09
  • C#操作Word打印的示例

    C#操作Word打印的示例

    這篇文章主要介紹了C#操作Word打印的示例,幫助大家利用c#打印文件,提高辦公效率,感興趣的朋友可以了解下
    2020-10-10
  • C#過濾sql特殊字符串的方法

    C#過濾sql特殊字符串的方法

    這篇文章介紹了C#過濾sql特殊字符串的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#?Winform實(shí)現(xiàn)進(jìn)度條顯示

    C#?Winform實(shí)現(xiàn)進(jìn)度條顯示

    這篇文章主要為大家詳細(xì)介紹了C#?Winform實(shí)現(xiàn)進(jìn)度條顯示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C#繪圖基本方法實(shí)例總結(jié)

    C#繪圖基本方法實(shí)例總結(jié)

    C#要實(shí)現(xiàn)簡單的畫圖功能可以利用Graphics這個(gè)類,下面這篇文章主要給大家介紹了關(guān)于C#繪圖基本方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • WinForm防止程序重復(fù)運(yùn)行的方法分析

    WinForm防止程序重復(fù)運(yùn)行的方法分析

    這篇文章主要介紹了WinForm防止程序重復(fù)運(yùn)行的方法,通過記錄窗口句柄實(shí)現(xiàn)防止WinForm程序重復(fù)運(yùn)行的功能,需要的朋友可以參考下
    2017-05-05
  • C#設(shè)計(jì)模式之Facade外觀模式解決天河城購物問題示例

    C#設(shè)計(jì)模式之Facade外觀模式解決天河城購物問題示例

    這篇文章主要介紹了C#設(shè)計(jì)模式之Facade外觀模式解決天河城購物問題,簡單描述了外觀模式的定義并結(jié)合具體實(shí)例分析了外觀模式解決購物問題的相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#使用BackgroundWorker控件

    C#使用BackgroundWorker控件

    這篇文章介紹了C#使用BackgroundWorker控件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#實(shí)現(xiàn)給圖片加水印的方法

    C#實(shí)現(xiàn)給圖片加水印的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)給圖片加水印的方法,結(jié)合完整實(shí)例形式分析了C#常見的圖片水印操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02

最新評論

辛集市| 柳林县| 潍坊市| 马边| 汤阴县| 县级市| 东乌珠穆沁旗| 淮阳县| 扶风县| 疏附县| 汾阳市| 雷山县| 桃园市| 衡南县| 响水县| 扎赉特旗| 沂水县| 荆州市| 泰安市| 新野县| 高密市| 兰州市| 平度市| 格尔木市| 西盟| 湄潭县| 荣昌县| 黎城县| 公安县| 西安市| 辉县市| 宁南县| 商丘市| 康定县| 十堰市| 仙居县| 海口市| 临沧市| 潍坊市| 商丘市| 扶绥县|