2013-08-04 41 views
0

我在C#中做了一個簡單的文本冒險,我想知道是否可以從.txt文件中讀取某些行並將它們分配給字符串。將文本文件中的行分配給字符串

我知道如何讀取所有從.txt文件中的文本,但究竟會我給你一定行的內容爲字符串?

+4

你如何決定哪行? – doctorlove

+0

如果你知道如何獲得文本,那麼你的問題是如何獲得數組的元素 – Sayse

+0

@Sayse:不一定 - 他或她也可以將所有文件內容(即所有行)讀取爲單個字符串。 –

回答

2

您是否考慮過ReadAllLines方法?

它返回一個行數組,您可以從中選擇所需的行。

所以對於例如,如果你想選擇3號線(假設你已經在文件中3行):

string[] lines = File.ReadAllLines(path); 

string myThirdLine= lines[2]; 
+0

我已經嘗試了ReadAllLines方法,但我不熟悉如何實際選擇某一行。 – user1994100

+0

請參閱編輯。 – loxxy

1

也許最簡單的(和最便宜的內存消耗方面)是File.ReadLines

String stringAtLine10 = File.ReadLines(path).ElementAtOrDefault(9); 

請注意,如果文件中少於10行,則爲null。參見:ElementAtOrDefault

這只是一個StreamReader的簡明版本,這將增加每行計數器變量。

0

作爲一種先進的替代方案:ReadLines加上一些LINQ:

var lines = File.ReadLines(myFilePath).Where(MyCondition).ToArray(); 

其中MyCondition

bool MyCondition(string line) 
{ 
    if (line == "something") 
    { 
     return true; 
    } 

    return false; 
} 
0

如果你不希望加載的所有行atonce

using(StreamReader reader=new StreamReader(path)) 
{ 
String line; 
while((line=reader.ReadLine())!=null)//process temp 
} 
0

下面是一個示例,您可以將這些行分配給一個字符串,但不能確定哪一行是哪個通過字段,你必須自己選擇它們。 這是您要分配的字符串的行。 例如,您需要第一行,您將哪一個定義爲一個而不是零,您需要第八行,您將其定義爲八行。

string getWord(int which) 
{ 
    string readed = ""; 
    using (Systen.IO.StreamReader read = new System.IO.StreamReader("PATH HERE")) 
    { 
     readed = read.ReadToEnd(); 
    } 
    string[] toReturn = readed.Split('\n'); 
    return toReturn[which - 1]; 
} 
相關問題