2011-03-25 8 views
0

我已經編寫了一些代碼來記錄word文檔並將其複製到剪貼板。在這個詞doc裏有800多個字符串。這是使用換行符分割字符串的正確方法

我試圖按行分割文檔,將它插入到列表中,然後用於測試目的顯示其中一行。但是,我收到一個空的消息框。 (以前的試驗顯示列表確實包含800個多行,他們可能只是因爲錯誤的代碼無效。)

這裏是我的代碼:

string myData = data.GetData(DataFormats.Text).ToString(); 

List<string> myList = new List<string>(myData.Split(new char[]{'\r','\n'})); 

MessageBox.Show(myList[5]); 

我在做什麼錯?

+0

可以顯示列表中的一個空字符串項。有一個字符串拆分參數告訴它不要向結果列表中添加空字符串。 – asawyer 2011-03-25 19:27:38

+0

我擺脫了'\ r',它的工作原理如下:/ – 2011-03-25 19:27:44

+0

這可能是因爲某些程序和某些系統僅使用換行符(\ n),而另一些系統則使用Return的組合(\ r在C#和CR上ASCII圖表)和Newline(在C#中爲\ n,在ASCII圖表中爲LF)字符,所以即使您的修改後的代碼也適用於某些輸入文檔,但不適用於其他文檔。使用System.Environment.Newline將覆蓋你。 http://en.wikipedia.org/wiki/Newline – David 2011-03-25 19:31:30

回答

5

嘗試

myData.Split(new string[]{Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) 
+0

+1。打敗我吧。 – David 2011-03-25 19:28:40

+0

你會碰巧知道如何處理word文檔嗎?當我再次運行代碼時,它說該文檔被鎖定以進行編輯。 – 2011-03-25 19:38:45

+0

您需要調用Application對象的Quit()函數。但是,我發現這並不總是有效,所以我還使用System.Diagnostic.Process來終止Word的實例。請參閱http://msdn.microsoft.com/en-us/library/system.diagnostics.process.kill.aspx Kill和http://msdn.microsoft.com/en-us/library/aa220368(office。 11).aspx爲Quit – David 2011-03-25 19:43:31