0

我正在用 C# 进行简单的文本冒险,我想知道是否可以从 .txt 文件中读取某些行并将它们分配给字符串。

我知道如何从 .t​​xt 文件中读取所有文本,但是如何将某些行的内容分配给字符串?

4

5 回答 5

2

您是否考虑过ReadAllLines方法?

它返回一个行数组,您可以从中选择所需的行。

因此,例如,如果您希望选择第三行(假设文件中有 3 行):

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

string myThirdLine= lines[2];
于 2013-08-04T09:38:38.483 回答
1

可能最简单(就内存消耗而言也是最便宜的)是File.ReadLines

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

请注意,null如果文件中的行数少于 10 行。见:ElementAtOrDefault

它只是 a 的简明版本StreamReader和每行增加的计数器变量。

于 2013-08-04T09:41:44.510 回答
0

作为高级替代方案:ReadLines加上一些 LINQ:

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

其中MyCondition

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

   return false;
}
于 2013-08-04T09:42:08.087 回答
0

如果您不想一次加载所有行

using(StreamReader reader=new StreamReader(path))
{
String line;
while((line=reader.ReadLine())!=null)//process temp
}
于 2013-08-04T09:43:07.183 回答
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];
}
于 2013-08-04T09:44:32.583 回答