這篇文章主要介紹C#如何實(shí)現(xiàn)記事本查找與替換功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出淳安免費(fèi)做網(wǎng)站回饋大家。
先上效果圖
定義全局變量
#region =★*★*★= 〖查找替換〗的自定義變量 =★*★*★= ///獲取或設(shè)置查找起始位置 static int Index = 0; ///查找到的字符串?dāng)?shù)量 static int count = 0; ///查找字符是否變更 static string strE = string.Empty; /// 記錄原始光標(biāo)位置 static int MemoIndex = -1; ///過(guò)度字符串變量 static string str = string.Empty; ///實(shí)例化富文本 static RichTextBox r = new RichTextBox(); #endregion
向上查找
#region =★*★*★= FindUp() 查找指定〖字符 或 字符串〗 =★*★*★= ///向上查找指定〖字符 或 字符串〗(不區(qū)分大小寫(xiě)) /// 內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 用戶指定要查找的字符串 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/// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 參數(shù)2(str):用戶指定要查找的字符串 ///
向下查找
#region =★*★*★= FindDown() 查找指定〖字符 或 字符串〗=★*★*★= ///向下 查找指定〖字符 或 字符串〗 /// 內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 用戶指定要查找的字符串 /// bool 真:限定大小寫(xiě) 假:不分大小寫(xiě) public static void FindDown(RichTextBox rtxt, string FindStr,bool TrueFales) { if (TrueFales) fileFindDownMax(rtxt, FindStr); else fileFindDownMin(rtxt, FindStr); } #endregion #region =★*★*★= 簡(jiǎn)單的從上到下查找 =★*★*★= ////// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 參數(shù)2(FindStr):用戶指定要查找的字符串 /// 參數(shù)3(TrueFales):bool 真:限定大小寫(xiě) 假:不分大小寫(xiě) 向下查找指定〖字符 或 字符串〗(限定大小寫(xiě)) /// 內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 用戶指定要查找的字符串 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(); } } ////// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 參數(shù)2(FindStr):用戶指定要查找的字符串 ///向下查找指定〖字符 或 字符串〗(不區(qū)分大小寫(xiě)) /// 內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 用戶指定要查找的字符串 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 //* 類(lèi)似 VS 的查找方法 */ #region =★*★*★= 類(lèi)似 VS 的查找方法 =★*★*★= ////// 參數(shù)1(rbox):內(nèi)容文本框,指定為 RichTextBox 文本框類(lèi)型 /// 參數(shù)2(FindStr):用戶指定要查找的字符串 ///類(lèi)似 VS 的查找方法(不區(qū)分大小寫(xiě)向下查找) /// RichTextBox文本框 /// 查找字符串 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; } } } ////// 參數(shù)1(txt):RichTextBox文本框 /// 參數(shù)2(FindString):查找字符串 類(lèi)似 VS 的查找方法(不區(qū)分大小寫(xiě)向下查找) /// RichTextBox文本框 /// 查找字符串 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/// 參數(shù)1(txt):RichTextBox文本框 /// 參數(shù)2(FindString):查找字符串
替換 與 全部替換(功能不是很全)
#region =★*★*★= 〖替換〗與〖全部替換〗 =★*★*★= #region =★*★*★= 單次替換字符串 =★*★*★= ///替換 /// RichTextBox /// 查找字符串 /// 替換字符串 /// (bool值)區(qū)分大小寫(xiě)真:區(qū)分 假:不區(qū)分 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 =★*★*★= 替換字符串 =★*★*★= /// 替換字符串 /// 查找的內(nèi)容 /// 要替換的內(nèi)容 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 =★*★*★= 〖全部替換〗 =★*★*★= ////// 參數(shù)1(FindString):查找的內(nèi)容 /// 參數(shù)2(ReplString):要替換的內(nèi)容 全部替換 /// RichTextBox 文本框 /// 查找字符串 /// 替換字符串 /// bool 真:區(qū)分大小寫(xiě),假:不區(qū)分大小寫(xiě) 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ū)分大小寫(xiě)) =★*★*★= ////// 參數(shù)1(txt):RichTextBox 文本框 /// 參數(shù)2(FindString):查找字符串 /// 參數(shù)3(ReplString):替換字符串 /// 參數(shù)4(trueFales):bool 真:區(qū)分大小寫(xiě),假:不區(qū)分大小寫(xiě) 全部替換(區(qū)分大小寫(xiě)) /// RichTextBox 文本框 /// 查找字符串 /// 替換字符串 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++; } } } ///全部替換(不區(qū)分大小寫(xiě)) /// RichTextBox 文本框 /// 查找字符串 /// 替換字符串 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é)果 =★*★*★= ///消息提示,提示用戶查找結(jié)果 /// 用戶指定要查找的字符串 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("沒(méi)有查找到 \"{0}\"!", str), "查找 - Mxdr溫馨提示!"); } #endregion/// 參數(shù)1(str):用戶指定要查找的字符串
查找字符著色
#region =★*★*★= 查找字符上色 =★*★*★= ///查找字符上色 /// RichTextBox private static void myColor(RichTextBox rtxt) { rtxt.SelectionColor = Color.Coral; } #endregion
C#是一個(gè)簡(jiǎn)單、通用、面向?qū)ο蟮木幊陶Z(yǔ)言,它由微軟Microsoft開(kāi)發(fā),繼承了C和C++強(qiáng)大功能,并且去掉了一些它們的復(fù)雜特性,C#綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程從而成為.NET開(kāi)發(fā)的首選語(yǔ)言,但它不適用于編寫(xiě)時(shí)間急迫或性能非常高的代碼,因?yàn)镃#缺乏性能極高的應(yīng)用程序所需要的關(guān)鍵功能。
以上是“C#如何實(shí)現(xiàn)記事本查找與替換功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!