0

StreamReaderを使用するときに、ファイルの読み取りを開始する場所をどのように指定しますか?

ファイルストリームオブジェクトとともに、streamreaderオブジェクトを作成しました。両方のオブジェクトが作成された後、StreamReaderがファイルからの読み取りを開始する場所をどのように制御しますか?

ファイルの内容が次のようになっているとしましょう。

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

ストリームリーダーを制御して、たとえば#2から読み取るにはどうすればよいですか?また、#5のような同様の区切り文字で読み取りを停止する場所を制御するにはどうすればよいですか?

編集:区切り文字とは、StreamReaderが( '2.')から読み取りを開始するようにする方法です。

4

3 に答える 3

1

ファイルに改行が含まれている場合は、ReadLineを使用して一度に1行ずつ読み取ることができます。

したがって、行#2から読み取りを開始するには、最初の行を読み取り、破棄してから、行#5まで行を読み取ります。

于 2009-02-26T04:11:36.673 に答える
1

ファイルをメモリ内のオブジェクトに逆シリアル化しようとしていますか?その場合は、または類似のものを使用してファイル全体を解析し、各行をReadLine格納してから、などのデータ構造を介してファイルにアクセスすることをお勧めしますKeyValuePair<int, string>

更新:わかりました...新しい情報では、2つのオプションがあると思います。一致するものが見つかるまで読書をしているPeek()場合は、そのキャラクターが探しているものであるかどうかを確認してから、を確認できますRead()。または、設定された位置を探している場合は、Read()その数の文字を単純に使用して、戻り値を破棄することができます。

複雑な区切り文字を探している場合は、行全体またはファイル全体をメモリに読み込んで、正規表現を使用できます。

お役に立てば幸いです...

于 2009-02-26T04:13:29.260 に答える
0

コンテンツがそのようなプレーンテキストの場合は、StreamReaderのReadLineメソッドを使用する必要があります。

http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx

-オシーン

于 2009-02-26T04:13:07.107 に答える