国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

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

2020-01-24 00:06:33
字體:
供稿:網(wǎng)友

看了網(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 =★*★*★= 簡(jiǎn)單的從上到下查找 =★*★*★=  /// <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)識(shí)查詢關(guān)鍵字的初始長(zhǎng)度     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)識(shí)查詢關(guān)鍵字的初始長(zhǎng)度     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)識(shí)查詢關(guān)鍵字的初始長(zhǎng)度     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)識(shí)查詢關(guān)鍵字的初始長(zhǎng)度     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è)人的理解,有不全的地方請(qǐng)各位能指點(diǎn)迷津。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兴市| 瓮安县| 彭泽县| 布尔津县| 天柱县| 兰溪市| 乳山市| 蒙城县| 东宁县| 台南县| 郸城县| 叙永县| 阜城县| 休宁县| 韶山市| 中方县| 资中县| 普定县| 长宁县| 新田县| 郎溪县| 曲麻莱县| 乾安县| 毕节市| 新绛县| 双峰县| 仁怀市| 临湘市| 永仁县| 库尔勒市| 沙洋县| 洛宁县| 桂阳县| 怀远县| 佳木斯市| 高碑店市| 泰宁县| 深泽县| 新田县| 彝良县| 屏山县|