長整数(Long)4バイトの要素が最高で50件発生するものを(4バイト×50件とした)2000バイトの文字列(可変長)に格納する方法はありますか。更にその文字列のある部分4バイトを切り出し、長整数(Long)として扱う方法はありますか。そんなことする必要があるのか…といったツッコミはしないで下さい。よろしくお願いします。
こんな感じでいかが?
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(dst As Any, src As Any, ByVal num As Long)
Private Sub Command1_Click()
Dim b() As Byte
Dim l As Long
Dim s As String
Dim i As Integer
l = 66
Debug.Print "b(3)", "b(2)", "b(1)", "b(0)", "l", "s"
Debug.Print "Long -> Byte() -> String"
ReDim b(4)
CopyMemory b(0), l, 4
s = b()
Debug.Print b(3), b(2), b(1), b(0), l, s
Erase b()
l = 0
Debug.Print "String -> Byte() -> Long"
b() = s
CopyMemory l, b(0), 4
Debug.Print b(3), b(2), b(1), b(0), l, s
End Sub
ありがとうございました。目からうろこ…って感じです。
ツイート | ![]() |