- - PR -
FileGet関数 ”ストリームの終わりを超えて読み取ることはできません”
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-05 19:21
こんにちは、chibanaです。以下のコードでFileGetがうまくできず。
”ストリームの終わりを超えて読み取ることはできません”のエラーが でてしまいます。おそらくストリームの終端から読み込もうとしているの だと思いますが、バイト位置を先頭にする関数などありますか? Dim udlDataB() As Byte Dim udlpath As String = "C:\test.txt" FileOpen(1, udlpath, OpenMode.Binary) filesize = LOF(1) ReDim udlDataB(filesize) FileGet(1, udlDataB, -1) FileClose(1) 初歩的なところで申し訳ありませんが、よろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2005-12-05 20:20
chibanaです。
ちなみに seek(1,1) を間に入れてもだめでした。 Dim file As New System.IO.StreamReader("C:test.txt") Dim words As String = file.ReadToEnd() file.Close() だとうまくいきます。 | ||||||||||||||||
|
投稿日時: 2005-12-05 20:56
配列を宣言するときの文法を確認してください。
この記述だと、仮にファイルサイズが50バイトの場合、51バイト分の配列を用意していることになりますよね。
ファイルサイズよりも常に1バイト大きなサイズを指定して読み出そうとしているのですから、そりゃエラーになりますよ。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||||||||||||||
|
投稿日時: 2005-12-05 21:09
chibanaです。
甕星さん、ありがとうございます。 FILEGETのレファレンスも確認したんですが・・。 そうだったんですね。お恥ずかしい。 ReDim udlDataB(filesize - 1) としたらうまくいきました。 ありがとうございました!! |
1