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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DXFファイルをVBで取り込み、図...
-
bmpファイルの明暗の数値化の方法
-
VBScriptの配列は、要素数を指...
-
バイト型のデータを16進表記で...
-
Fortranの'read'のVBへの書き換...
-
VBAでテキストファイルの改行を...
-
CSVファイルによる検索の高速化
-
RGBのバイナリデータをCImageに...
-
インデックスが配列の境界外で...
-
Cで2次元配列にCSVファイルを...
-
[VBS] 16進数でバイナリファイ...
-
エクセルのプロパティーでセキ...
-
ファイルのアクセス回数について
-
エクセルで複数のコメントのサ...
-
エクセルvbaでdocuworksprinter...
-
【VBA】テキストファイルを指定...
-
カンマ区切りのCSVファイルから...
-
同じファイル名 上書きしないフ...
-
Vba初心者です。下記のコード助...
-
デスクトップの画像をhtmlに表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DXFファイルをVBで取り込み、図...
-
RGBのバイナリデータをCImageに...
-
VBAでテキストファイルの改行を...
-
VBAでテキストファイルを複数開...
-
ファイル内の(&H0A)を(&H0D0A)...
-
テキストファイルを後ろから読...
-
datagridviewでドラッグ操作が...
-
ファイル入力のデータを構造体...
-
バイナリファイルでOutOfMemory...
-
Excel VBAで画像解析
-
ファイルからビット単位での読...
-
バイナリ出力
-
バイト型のデータを16進表記で...
-
バイナリファイルの一部分をカ...
-
VBScriptの配列は、要素数を指...
-
インデックスが配列の境界外で...
-
Mscomm を使用してバイナリでデ...
-
perl 特定の文字列をdatファイ...
-
Cで2次元配列にCSVファイルを...
-
[VBS] 16進数でバイナリファイ...
おすすめ情報