1

私はテキストファイルを持っています:

hh
    Something sdf....
    one line 
    empty line
    other line
    goal 

    Something apf ee
    one line 
    goal 

List<String> goo = new List<String>();

System.IO.StreamReader file = new System.IO.StreamReader("text.txt");
while (file.EndOfStream != true)
{
    string s = file.ReadLine();
    if (s.Contains("Something"))
    {            
        goo.Add(s);
    }
}

Somethingまでのすべての行を取得したいgoal。ファイルには とがたくさんSomethingありgoalます。私は配列か何かを使用する必要があります...?

4

3 に答える 3

0

これはメタコードです

行を反復する
    行が「何か」から始まる場合
        追加する必要があります = true
    終わり

    行が「ゴール」から始まる場合
        ShouldAppend = false
    終わり

    If ShouldAppend == true

        // 文字列ビルダに行を追加
        // または、必要に応じてリストに追加します

    終わり
終わり
于 2013-05-19T21:38:49.757 に答える
0

状態の読み取りを追跡するだけです。私が知る限り、あなたには 2 つの状態があります。行を追加する場合と追加しない場合。状態を追跡している場合は、追加するときに状態を確認するだけです。シンプルですが、実際には堅牢ではないため、最善の方法ではありません。これを行う方法は次のようになります。

    while (file.EndOfStream != true)
    {   
        bool addStuff = false;
        string s = file.ReadLine();
        if (s.Contains("Something"))
        {   
           addStuff = true;
        }else if (s.Contains("goal")){
           addStuff = false
        }

        if(addStuff){
            goo.Add(s);
        }
    }

無効なフォーマットやそのようなものを処理しないため、これは堅牢ではありません。これは、これにどのようにアプローチできるかのガイドとなることを意図しています。

于 2013-05-19T21:39:18.440 に答える