2010-11-21 68 views
2

我有一個多行TextBox,我想轉換爲字符串, 我發現這個多文本字符串

串textBoxValue = textBox1.Text.Replace(Environment.NewLine,「令牌」);

但不明白TOKEN什麼是TOKEN?空白或/ n換行符? 如果這是不正確的答案,那麼請讓我知道這樣做

感謝

+3

沒有理由不能將換行符保留在字符串中。你真的想要解決什麼問題? – Donnie 2010-11-21 01:10:08

+0

客戶端給了我文本,這個文本是他擁有的應用程序的副本(抓取)。我可以從他的應用程序中獲取文本的唯一方法是將粘貼從他的應用程序複製到myn,客戶端數據庫被寫入一個未知的數據庫,我無法訪問數據庫,然後手動複製粘貼從他的應用程序的文本到myn,我的應用程序是一個多行文本框信息粘貼到,這個信息包含換行和格式化我不需要,因此多行字符串 – user511046 2010-11-21 01:16:23

+0

此外我需要將這些數據輸入到SQLite並重寫他的整個應用程序,公司不希望將來自previos應用程序的信息輸入到新數據庫中,內容中有超鏈接等,所以如果有一種方法,我可以使文本框只接受RAW數據,這將是最好的。 – user511046 2010-11-21 01:20:35

回答

1

中的代碼片段你給的正確方法,「令牌」是要插入,如HTML的任何值<br />標籤,更多Environment.NewLine用於格式化,或只是一些隨機分隔符,稍後將允許您拆分文本。

一個非常簡單的例子:

string text = textBox1.Text.Replace(Environment.NewLine, "^"); // a random token 
string[] lines = test.Split('^'); 

如果您正在處理在網絡上從一個文本框可用的輸入,還需要考慮到XSS(http://en.wikipedia.org/維基/交叉site_scripting)。另外,在真實場景中,我會分解更復雜的標記,並確保在輸入值中處理多個回車符。

編輯:現在,我看到您的實際需求,這個代碼可以做你的需要:

// replace newlines with a single whitespace 
string text = textBox1.Text.Replace(Environment.NewLine, " "); 

編輯#2:

進一步,我需要這些數據填入到 SQLite和重寫他的整個 申請,該公司不希望 有從前 應用程序的信息輸入到新的 數據庫,有超鏈接等 嵌入的內容,所以如果有 是一種方式我可以使文本框只有 接受RAW數據這將是最好的 。

正則表達式是類似這樣的事情的一種方式,除非數據的結構足以加載到XML或HTML DOM並進行處理。你可以用各種工具建立正則表達式(做一個谷歌搜索一個免費的在線測試器,你會發現很多)。一旦你已經確定你需要的表情時,你可以使用正則表達式對象在C#來匹配,更換等

http://msdn.microsoft.com/en-us/library/ms228595(VS.80).aspx

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace(v=VS.100).aspx

0

因爲它的立場,「令牌」僅僅是一個meangingless串,除非它在你的代碼中的其他地方?您可以用任何你喜歡的文字替換「TOKEN」。

編輯:

好了,你說你從客戶的文字刪除換行符的。所以你會這樣做。將它們的文本粘貼到名爲textBox2的文本框中,然後使用以下代碼:

textBox2.Text = textBox2.Text.Replace(Environment.NewLine,string。空);