FileGetでデータを取得できない
VB2010で、以下のプラグラムで、バイナリデータ
「配列のオフセットおよび長さが範囲を超えているか、カウンターがソース コレクションのインデックスから最後までの要素の数より大きい値です。」
と出て、ファイルデータが取得できません。
Dim wd() As Byte
dim spoint as long=8239
FileGet(fileno, wd, spoint)
どうすればいいのでしょうか?
FileGet する前に、
Redim wd(spoint)
として、バッファを確保する必要があるのでは?
※ FileGet の仕様は未確認です・・・
以上。
ご回答ありがとうございます。
以下のようにバッファを確保しましたが、FileGetのところで同じメッセージが出てしまいます。
Dim wd() As Byte
wd = System.Text.Encoding.GetEncoding(65001).GetBytes(StrDup(10000, "1"))
dim spoint as long=8239
FileGet(fileno, wd, spoint)
VB6では以下のようになっているプログラムをvb2010に移植したいのですが。。。
バッファ確保箇所も同じ結果になりませんが、現状影響ないので流してます。
Dim wd() As Byte
dim spoint as long
wd = String$(5000, "1")
For i = 0 To 4999
wd(i) = 0
Next i
spoint = 8239
Open FileName For Binary As #1
Get #1, spoint, wd
バイナリでのファイル読み込みですか?
http://dobon.net/vb/dotnet/file/filestream.html
※ VB6 とは同じにはいかないよ。
以上。参考まで
ツイート | ![]() |