2011-03-25 4 views
0

doc이라는 단어를 사용하여 클립 보드에 복사하는 코드를 작성했습니다. 이 낱말 doc에는 그들의 자신의 선에 800+ 끈이있다.줄 바꿈을 사용하여 문자열을 분할하는 올바른 방법입니까

줄 단위로 문서를 분할하여 목록에 넣으려고 시도하고 테스트 목적으로 줄 중 하나를 표시하려고합니다. 그러나 빈 메시지 상자가 나타납니다. (이전 테스트는 실제로 800 개 행을 포함 않습니다 목록을 표시 그들은 단지 때문에 잘못된 코드 null이 될 수있다.).

여기 내 코드입니다 :

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

+0

'\ r'을 없애고 작동했습니다 :/ –

+0

일부 프로그램 및 일부 시스템에서는 개행 문자 (\ n) 만 사용하고 다른 사용자는 Return (C#의 CR 및 CR)을 조합하여 사용할 수 있기 때문일 수 있습니다. ASCII 차트) 및 개행 문자 (C#에서는 \ n, ASCII 차트에서는 LF 문자)가 포함되어 있으므로 수정 된 코드라도 일부 입력 문서에서는 작동하지만 다른 문서에서는 작동하지 않습니다. System.Environment.Newline을 사용하면 두 가지를 모두 다룰 수 있습니다. http://en.wikipedia.org/wiki/Newline – David

답변

5

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

+1. 나를 때려. – David

+0

단어 문서를 처분하는 법을 알고 있습니까? 코드를 다시 실행하면 문서가 편집을 위해 잠겨 있다고 표시됩니다. –

+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 종료 – David

관련 문제