2011-08-01 219 views
0

我創建在C#中的WinForms一個記事本程序中的所有操作。請告訴我一些關於如何執行替換/替換所有操作的想法。替換/替換記事本

+0

任何更多的細節?你想支持什麼樣的選擇?病例(中)的敏感性?另外,你已經嘗試過什麼? –

+0

我正在嘗試搜索替換RichtextBox.Text中的文本的第一個索引並將其替換。然後創建一個子字符串,並再次搜索剩餘字符串中的第一個索引,但它創建了一些問題,在這裏我試圖替換/替換區分大小寫的所有操作。 – VIKRAM

回答

1
Console.WriteLine("TEXT".Replace("EX","XE")); 

替代機制返工:

var s="TEXT"; 
Console.WriteLine(s.Replace("EX","XE")); 

在評論簡單實現的問題:

 Console.WriteLine("TEXT".IndexOf("EX")); 
     var s="TEXT"; 
     var f = "EX"; 
     var r = "XE"; 
     var i = s.IndexOf(f); 
     s=s.Remove(s.IndexOf(f), f.Length); 
     s = s.Insert(i, r); 
     Console.WriteLine(s); 

向後替換使用簡單的擴展方法,反轉上述和使用.Reverse();

注意,.IndexOf(F)的起始值.IndexOf(F,啓動),可用於步進。

+0

這東西效果很好的替代樣,如果我們想通過FindNext中更換indivisual串一個個像在實際記事本所有,但什麼。 – VIKRAM

+0

@VIKRAM:請參閱以上有關如何逐一實施的一些快速建議。 – sgtz

+0

我並不是說這是最高效的,但對小的需求應該沒問題。即字符串是不可變的類型,所以每個插入/刪除/替換都會創建一個全新的字符串。 – sgtz

1

您可能首先模擬按Ctrl + H的快捷鍵顯示替換對話框,然後使用的PInvoke獲得的「查找內容」和「替換爲」編輯控件的窗口句柄;最後更改兩個編輯控件的文本,並模擬按鈕單擊「全部替換」。

可能API使用的有:

GetWindowText() 
SetWindowText() 
SetForeGroundWindow() 
SendKeys.Send()