固定長のテキストファイルをランダムアクセスするには?

解決


pot  2007-05-17 08:52:02  No: 136403

VB2005でWindowsCE搭載(compact framework2.0)のハンディターミナル用アプリを開発しています。
固定長文字列のテキストファイルより一部のデータを読み込みしたいのですがどうもうまくいきません。初めての開発しで混乱中です。どなたかご教授願います。

0123456789
9876543210
abcdefghij

たとえば上記のようなテキストファイルより2行目の3文字目から5文字を読み込みたい 期待する値→"76543"

Dim fs As System.IO.FileStream
Dim sr As System.IO.StreamReader
Dim buf(4) As Char

fs = New FileStream("ファイルのパス", FileMode.Open, FileAccess.ReadWrite)
sr = New StreamReader(fs)

sr.ReadLine()
fs.Seek(2, SeekOrigin.Begin)
sr.ReadBlock(buf, 0, buf.Length)

取得した結果→"98765"になっています。


我龍院  2007-05-17 23:45:07  No: 136404

ReadBlockのヘルプを見ても当然そうなるでしょうね。
Dim buf(10) As Char
としておいて、力技で
CStr(buf).Substring(2, 5)か
Convert.ToString(buf).Substring(2, 5)
などとしたらいかがですか。


pot  2007-05-18 23:37:55  No: 136405

調べるのは大変でしたがなんとか解決しました。
いろいろとアドバイスありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加