Записать в файл структуру двоичных данных - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
Как записать в файл (считать из файла) структуру двоичных данных?
В Form_Load:
то есть размер структуры должен быть 4 + 2 + 2 + 2 + (4x100) = 410 байт.
Как увидеть размер структуры после применения ReDim?
Решение задачи: «Записать в файл структуру двоичных данных»
textual
Листинг программы
Imports System.Runtime.InteropServices Imports System.Text Public Class Form1 Private Structure Test Dim Var1 As Short Dim Var2 As Short End Structure Dim ByteArray() As Byte 'Перевод структуры в байты Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Tst As Test Tst.Var1 = 911 Tst.Var2 = 7 Dim Ptr As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(Tst)) ReDim ByteArray(Marshal.SizeOf(Tst) - 1) Marshal.StructureToPtr(Tst, Ptr, False) Marshal.Copy(Ptr, ByteArray, 0, Marshal.SizeOf(Tst)) Marshal.FreeHGlobal(Ptr) End Sub 'Из байтов в структуру Private Function BulidStr(ByVal Buff() As Byte, ByVal MyType As System.Type) As Object Dim MyGC As GCHandle = GCHandle.Alloc(Buff, GCHandleType.Pinned) Dim Obj As Object = Marshal.PtrToStructure(MyGC.AddrOfPinnedObject, MyType) Return Obj MyGC.Free() End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Tst As Test Tst = BulidStr(ByteArray, Tst.GetType) MsgBox(Tst.Var1.ToString) MsgBox(Tst.Var2.ToString) End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д