FileGetでデータを取得できない


あかい  2012-09-21 18:43:06  No: 147808  IP: [192.*.*.*]

FileGetでデータを取得できない
VB2010で、以下のプラグラムで、バイナリデータ
「配列のオフセットおよび長さが範囲を超えているか、カウンターがソース コレクションのインデックスから最後までの要素の数より大きい値です。」
と出て、ファイルデータが取得できません。

Dim wd() As Byte
dim spoint as long=8239

FileGet(fileno, wd, spoint)


どうすればいいのでしょうか?

編集 削除
オショウ  2012-09-22 20:36:09  No: 147809  IP: [192.*.*.*]

FileGet する前に、
Redim wd(spoint)
として、バッファを確保する必要があるのでは?

※  FileGet の仕様は未確認です・・・

以上。

編集 削除
あかい  2012-09-25 15:01:15  No: 147810  IP: [192.*.*.*]

ご回答ありがとうございます。

以下のようにバッファを確保しましたが、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

編集 削除
オショウ  2012-09-25 18:11:41  No: 147811  IP: [192.*.*.*]

バイナリでのファイル読み込みですか?

http://dobon.net/vb/dotnet/file/filestream.html

※  VB6 とは同じにはいかないよ。

以上。参考まで

編集 削除