C#如何用结构体直接读取二进制文件的内容
我的结构体如下
这边我是使用字符数组data先读取二进制文件,
我想请问如何不通过字符数组直接用结构体接受二进制文件的内容?????
[StructLayout(LayoutKind.Sequential)]
public struct BYTE_4
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] col;
}
[StructLayout(LayoutKind.Sequential)]
public struct BYTE_6
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public byte[] col;
}
[StructLayout(LayoutKind.Sequential)]
public struct BYTE_2_4
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] //注意:这里对应一维数组[/b]
public BYTE_4[] row;
}
public struct BYTE_2_6
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] //注意:这里对应一维数组[/b]
public BYTE_6[] row;
}
public struct netBaseParamStructure //网络基本参数
{
public BYTE_2_4 bytIP ; //0 To 1:A网口和B网口,0 To 3:每个IP地址占用共4个字节
public BYTE_2_4 bytMask ; //地址掩码
public BYTE_2_4 bytGateWay; //网关信息
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] ISMacAsigned;
public BYTE_2_6 MacAsigned;//= new Byte[2, 6];/
public Byte SNtpVer;
public Byte uiencast;
}这边我是使用字符数组data先读取二进制文件,
using (var reader = new BinaryReader(File.OpenRead(filename)))
{
reader.BaseStream.Seek(0, SeekOrigin.Begin);
reader.Read(data, 0, 40);
}
//data 数组赋值给结构体
int _StuctSize = Marshal.SizeOf(typeof(netBaseParamStructure));
Console.WriteLine(_StuctSize);
IntPtr _StructIntPtr = Marshal.AllocHGlobal(_StuctSize);
Marshal.Copy(data, 0, _StructIntPtr, _StuctSize);
object _StructObject = Marshal.PtrToStructure(_StructIntPtr, typeof(netBaseParamStructure));
Marshal.FreeHGlobal(_StructIntPtr);
netBaseParamStructure _Image = (netBaseParamStructure)_StructObject
我想请问如何不通过字符数组直接用结构体接受二进制文件的内容?????
...全文
相关推荐
C#读取bin文件
版本:VS2010 C#读取bin文件,并显示在TextBox控件内 版本:VS2010 C#读取bin文件,并显示在TextBox控件内
C#二进制文件读写实战:时间数据的存储与读取
在现代软件开发中,二进制文件的读写操作是数据持久化的重要手段之一。相较于文本文件,二进制文件在存储效率、读写速度和数据结构保真度方面具有显著优势。C# 提供了丰富的类库支持,如FileStream和,为开发者实现高效的二进制文件操作提供了坚实基础。本章将引导读者理解二进制文件的基本概念,掌握其在 C# 中的应用场景,并通过一个简单的案例——将当前时间写入.dat文件并读取还原,逐步深入至自定义对象的序列化与反序列化,构建完整的二进制文件操作认知体系。结构体(struct)
C#读取tga源代码
C#读取tga图片格式的源代码,具体见代码,里面有一个结构体和实现方法。
一个简单的读取二进制文件并进行排序
一个单的读取二级制文件的例子,并进行排序输出。用的是win32控制台
C#从文件中存储及读取结构体示例
把结构体存储成2进制文件及从2进制文件中读取信息到结构体示例


