C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■87618 / 2階層)  C# seekでの読み込み位置変更について
□投稿者/ にゃるら (23回)-(2018/06/14(Thu) 09:36:14)
No87614 (mau さん) に返信

>
> // 5行目読み込み
> fpos = 0;
> fpos = fpos + (buf.Length + 1) * 5;

仮に1行分のサイズが「あっている」としたとして、5倍ということは6行目の先頭になりますね。
10行目の読み込みも同じことが言えます。

> fs.Seek(fpos, SeekOrigin.Begin);
> var buf = sr.ReadLine();

StreamReaderは文字エンコードを考慮してキャッシュして読み込みしてるのかしら?
だとすると、ストリームのポジションを移動させてもキャッシュは消えていないことになると予想。
だからSeekのあとに、StreamReaderのDiscardBufferedDataメソッドを読んでみてはいかがでしょうか?
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: C# seekでの読み込み位置変更について /????? 返信無し
 
上記関連ツリー

C# seekでの読み込み位置変更について / mau (18/06/14(Thu) 02:00) #87614
Re[1]: C# seekでの読み込み位置変更について / Azulean (18/06/14(Thu) 06:25) #87615
│└ Re[2]: C# seekでの読み込み位置変更について / Hongliang (18/06/14(Thu) 09:22) #87616
Re[1]: C# seekでの読み込み位置変更について / ????? (18/06/14(Thu) 09:34) #87617
│└ C# seekでの読み込み位置変更について / にゃるら (18/06/14(Thu) 09:36) #87618 ←Now
Re[1]: C# seekでの読み込み位置変更について / WebSurfer (18/06/14(Thu) 12:15) #87628

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信