-3

ファイル内の文字列を検索したいのですが、見つかったら、前に移動して別の文字列を検索し、最後に文字列の末尾の文字を取得したいと思います。

ファイル内のテキストが次のようになるとしましょう

1 行目 ------------ サンプル テキスト countery="ABCD" detailsprogrammed... など

2 行目 ------------ これは 2 行目の product="12345" であり、続きます。

最初に一意の 12345 を検索したいと思います。見つかったら、前の行に移動して、カウンターパーティの最初の出現を検索し、見つかったら、文字列 ABCD をキャプチャしたいと思います

4

2 に答える 2

2

各反復の前に行をキャッシュすることができます:

string prevLine = "";
while((line = reader.ReadLine()) != null)
{
    if (line.contains("12345"))
    {
        textIWant = prevLine.Substring( //..etc
    }
    prevLine = line;
}

1 行以上戻る必要がある場合は同じパターンを続けることができますが、1 行または 2 行以上戻る必要がある場合は明らかに面倒になります。ファイルがそれほど大きくない場合は、すべてを読み取ることもできます。すべての行をキャッシュするだけですが、ファイルが非常に大きく、一度にすべてをキャッシュするために大量のメモリを占有する場合、これは適切ではありません。

于 2013-10-10T21:38:36.860 に答える