- - PR -
VB.NET FileGet関数を使用して構造体への値を取得する方法
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-11-12 13:15
サンプル1--------------------------------------
option strict OFF PUBLIC CLASS TEST Structure stc <VBFixedString(2)>public aaa as string <VBFixedString(2)>public bbb as string End structure Private pstc as stc Private sub Form1_Load(・・・・・・・)handles myBase.load dim iFNum as integer iFnum=FreeFile() FileOpen(iFNum,"C:\ファイル.txt",OpenMode.Binary,,,4) FileGet(iFNum,pstc) FileClose(iFNum) END SUB END CLASS サンプル2-------------------------------------- option strict On PUBLIC CLASS TEST Structure stc <VBFixedString(2)>public aaa as string <VBFixedString(2)>public bbb as string End structure Private pstc as stc Private sub Form1_Load(・・・・・・・)handles myBase.load dim iFNum as integer iFnum=FreeFile() FileOpen(iFNum,"C:\ファイル.txt",OpenMode.Binary,,,4) FileGet(iFNum,Ctype(pstc,stc) FileClose(iFNum) END SUB END CLASS ------------------------------------------------ ただいま開発中で困っています。 上記サンプル1のコード内でFileGet関数を使用し、構造体へ値を取得している 部分がありますが、Option Strict OFF の場合は値が取得できますがサンプル2Option の用にStrict ON にすると、Ctypeをしても値が取得できません。 どなたか、構造体をFileGet関数に合わせる方法を知っていたら教えてください。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-11-12 15:28
Option Strict Off時に使用されているFileGetのオーバーロードは
FileGet(Integer,System.ValueType,Long) のようですので、このオーバーロード形式が確実に使用されるようにすれば同じ挙動になる、と考えられます。 これが最善の方法かはわかりませんが、次のようにしたらOption Strict Onの時も値を取得できました。(FileGet内でCTypeを行う方法ではうまくいきませんでした)
[ メッセージ編集済み 編集者: kanai 編集日時 2004-11-12 15:34 ] | ||||
|
投稿日時: 2004-11-12 16:05
kanai様、ありがとうございました。
おっしゃるとおり、ピタリと値が取得できました! 本当にありがとうございました。 Ctypeにこだわりすぎでしたね、頭をもうちょっとやわらかくします。 | ||||
1
