0

私は C# で単純なテキスト アドベンチャーを作成しています。.txt ファイルから特定の行を読み取って文字列に割り当てることができるかどうか疑問に思っていました。

.txt ファイルからすべてのテキストを読み取る方法は知っていますが、特定の行の内容を文字列に正確に割り当てるにはどうすればよいでしょうか?

4

5 に答える 5

2

ReadAllLinesメソッドを検討しましたか?

目的の行を選択できる行の配列を返します。

たとえば、3 行目を選択する場合 (ファイルに 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

StreamReaderこれは、行ごとに増加するa とカウンター変数の簡潔なバージョンです。

于 2013-08-04T09:41:44.510 に答える
0

すべての行を一度にロードしたくない場合

using(StreamReader reader=new StreamReader(path))
{
String line;
while((line=reader.ReadLine())!=null)//process temp
}
于 2013-08-04T09:43:07.183 に答える
0

行を文字列に割り当てる方法の例を次に示します。フィールドを介してどの行がどれであるかを判断することはできません。自分で選択する必要があります。これは、割り当てたい文字列の行です。たとえば、ライン 1 が必要な場合、どれを 0 ではなく 1 として定義し、ライン 8 が必要な場合、どれを 8 で定義します。

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 に答える
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 に答える