2017-08-17 70 views
0

嘿,我目前卡住了。我有以下代碼從文件中取出一行,根據特定的字符串並返回它,然後可以對其進行編輯,然後將其應用回包含文件內容的文本框,並放入該字符串最初取自的行中。c#存儲文本框(文件內容)行到陣列

private void citationChange() 
    { 
     List<string> matchedList = new List<string>(); 

     string[] linesArr = File.ReadAllLines(fileName); 

     //find matches 
     for (int a = 0; a < linesArr.Length; a++) 
     { 
      string s = linesArr[a]; 
      if (s.Contains(citation)) 
      { 
       matchedList.Add(linesArr[a]); //matched 
       lineBeingEdited = a; 
       break; //breaks the loop when a match is found 
      } 
     } 

     //output 
     foreach (string s in matchedList) 
     { 
      string citationLine = s; 
      string[] lineData = citationLine.Split(','); 
      editModuleComboBox.Text = lineData[1]; 
      selectedModuleLabel.Text = lineData[2]; 
      moduleTitleTextBox.Text = lineData[3]; 
      creditsTextBox.Text = lineData[4]; 
      semesterTextBox.Text = lineData[5]; 
      examWeightingTextBox.Text = lineData[6]; 
      examMarkTextBox.Text = lineData[7]; 
      testWeightingTextBox.Text = lineData[8]; 
      testMarkTextBox.Text = lineData[9]; 
      courseworkWeightingTextBox.Text = lineData[10]; 
      courseworkMarkTexbox.Text = lineData[11]; 
     } 
    } 

如何重新創建/更改此代碼,但它爲了讀取文本框而不是文件?

感謝

回答

2

改變這種做法,你可以用你的文字從文本做到這一點:

string[] linesArr = File.ReadAllLines(fileName); 

到:

string[] linesArr = theTextBox.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
+0

謝謝,那工作:) – Dr4ken

1

當讀取文件File.ReadAllLines基本上由分割的\r\n整個文本。

交換這一行:

string[] linesArr = File.ReadAllLines(fileName); 

這樣:

string[] linesArr = YourTextBox.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 

或本:

string[] linesArr = YourTextBox.Text.Split(new char[] {'\r', '\n'}); 
+1

這將會給一個錯誤,'參數1:不能從「字符串」轉換爲「char'' – ainwood

+0

@ainwood謝謝你說得對。我改了它 –

+0

最終的字符串和原文可能不是100%相同。 https://msdn.microsoft.com/en-us/library/s2tte0y1(v=vs.110).aspx'一行被定義爲一個字符序列,後跟一個回車符('\ r'),一行feed('\ n'),或者緊接着換行的回車。由此產生的字符串不包含終止回車和/或換行.' – mjwills