最近VBをはじめた者です。
Byte型配列からSingle型やInteger型への
変換方法がわからないので,どなたか教えていただけませんか?
実際にやっている内容は,
LinuxプログラムとVBプログラムでシリアル通信を行っていて,
通信データをVBプログラムでByte型配列で受信します。
※Byte型配列で受信するのはボード固有の関数の仕様
通信データのフォーマットは,文字,整数,浮動少数,
が混在しています。
初心者掲示板より
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200307/03070021.txt
> 最近VBをはじめた者です。
という事は、VB.NETでしょうか。
.NETの場合は、「System.BitConverter クラス」を使ってみてください。
ToSingleメソッドを使って、Byte配列をSingle値に変換できます。
Dim B() As Byte = {37, 82, 154, 68}
Dim S As Single = System.BitConverter.ToSingle(B, 0)
--------
旧いバージョン(VB6以下、もしくはVBA)を使っている場合は、
ユーザー定義型とLSetステートメントを使って変換できます。
Option Explicit
Private Type B4
B(3) As Byte
End Type
Private Type S1
S As Single
End Type
Private Sub Form_Load()
Dim X As B4
Dim Y As S1
X.B(0) = 37
X.B(1) = 82
X.B(2) = 154
X.B(3) = 68
LSet Y = X
Debug.Print Y.S
End Sub
初心者さん,魔界の仮面弁士さん,
回答どうもありがとうございました。m(__)m
VBはソフトが古くVB6だったので,LSetを使う方法,
CopyMemoryというAPIを使う方法,
どちらも試してうまくいきました。
ソフトはもうすぐVB.NETに替えないといけなさそうなので
その時,System.BitConverter クラスも参考にさせて
いただきます。
本当にどうもありがとうございました!