VB2008の練習のために、VB4.0のコードをVB2008にコンバージョンしています。
VB4.0の「LSet」がどうしてもコンバージョンできません。
LSet 以外はVB2008で機能がありました。
なにか方法はないでしょうか。
リストをコピーします。
(投稿したらインデントが消えました)
Public Type Tpstndef
equip As Integer
stn_no As Integer
stn_class As Integer
line_no As Integer
stn_kind As Integer
End Type
Dim kdata As Tpkyokudef
Dim rbuf As buf1K
・
省略
・
Get #fno, seeksize, rbuf
LSet kdata = rbuf
No.1ベストアンサー
- 回答日時:
IntPtrを経由して行えばいいように思います
dim objPtr as IntPtr = Marshal.AllocHGlobal( Len(rbuf) )
として ファイルから読み込んだデータを格納できる IntPtr型の変数を準備します
' VB6ではファイルより大きな受け取りバッファでもエラーになりません
' VB.NETではその点融通が利かないようです
' LOFなどで読み込み量を調べて あらかじめ Redimであわせましょう
FileGet( fno, rbuf.実際のバッファ )
FileClose()
' rbufの読み込み実体がByte配列ならいいのですが …
Marshal.Copy( rbuf.実際のバッファ, 0, objPtr, rbuf.実際のバッファ.Length )
kdata = marshal.PtrToStructure( objPtr, GetType(Tpstndef))
' 使いおわったら開放しましょう
marshal.FreeHGlobal( objPtr )
といった具合です
ありがとうございました。これから、実行してみます。
というのは、デバックのトレースでkdataに値が入りません。
rbuf には値が入ります。
この回答をお手本にして考えてみます。
No.2
- 回答日時:
Lsetにreturnかけずにbufをしつ力したら
ありがとうございます。
たしかに rbuf には値がはいりますから、
おっしゃる通りでも良いと思います。
が、それでは構造体を定義した意味が薄れてしまいます。
imogasiからの進言もありましたので、この質問を閉め切ります。
(リストを一部修正しましたので)
以後は、http://oshiete1.goo.ne.jp/qa4376930.htmlの方でお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fread関数の使い方がわかりませ...
-
Mscomm を使用してバイナリでデ...
-
ファイルをメモリに出力する方法
-
bmpファイルの明暗の数値化の方法
-
ファイル入力のデータを構造体...
-
ファイル内の(&H0A)を(&H0D0A)...
-
VBでLOOKUP機能
-
ファイルの読みこみ方法とファ...
-
VBA一覧取得 再投稿
-
ファイルのアクセス回数について
-
VBAでパワーシェルを実行したい...
-
マインクラフトPCをプレイしよ...
-
エクセルで複数のコメントのサ...
-
windowsでテキストファイルの各...
-
バッチファイル XCOPYで上書き...
-
パスワード保護されたExcelファ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
エクセルでcsvファイルを開いて...
-
エクセルのプロパティーでセキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイト型のデータを16進表記で...
-
VBAでテキストファイルを複数開...
-
RGBのバイナリデータをCImageに...
-
VBAでテキストファイルの改行を...
-
DXFファイルをVBで取り込み、図...
-
[VBS] 16進数でバイナリファイ...
-
ファイルをメモリに出力する方法
-
ファイル内の(&H0A)を(&H0D0A)...
-
テキストファイルを後ろから読...
-
Cで2次元配列にCSVファイルを...
-
ファイル入力のデータを構造体...
-
Excel VBAで画像解析
-
VBScriptの配列は、要素数を指...
-
fread関数の使い方がわかりませ...
-
ファイルからビット単位での読...
-
awk getlineをもう一度ファイル...
-
バイナリファイルでOutOfMemory...
-
VBSにてCSV読み込みし比較
-
バイナリファイルの一部分をカ...
-
日本語混じりのファイルをラン...
おすすめ情報