我试图在我公司扭转一个遗产双常数据库,以便我能够将其变成一个更持久的形式。 我们用于创建这一数据的申请已不再得到支持。
我已经指出,我可以描述一系列结构中的数据,我能够用沼泽地把这些数据带到一个管理的环境中。 Ptr ToStructure,但档案除外。
下面,我引述了我试图教化的结构样本。 原始数据完全是按顺序排列的,我正试图分一步淡化。
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct DrillTPD
{
public short Header;
public short Header2;
public short Header3;
public short RecordCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 999)]
public TPDHeader[] Templates;
}
[StructLayout(LayoutKind.Sequential, Pack = 1, Size=18)]
struct TPDHeader
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
public string TemplateName;
public int TPDIndex;
}
TPDIndex从档案开始便被冲抵。 我如何增加财产,以适当淡化这一数据?
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 76)]
struct TPDParent
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 9)]
public string TemplateName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 25)]
public string Description;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
public string Field;
public double Width;
public double Length;
public double Thickness;
public short WL;
public short XY;
public short Origin;
public short Features;
[MarshalAs(UnmanagedType.ByValArray)]
public TPDDetail[] Details;
}
[StructLayout(LayoutKind.Sequential, Pack=1, Size=350)]
struct TPDDetail
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 350)]
public string Text;
}
TPDParent的TPDDetail阵列由结构的特征界定。 如果没有特征,在TPDParent之后没有数据。
我怎么能动态地让航天员了解图西混凝土阵列的规模?
An pseudo XML 这一数据的结构最好像:
<DrillTPD>
<TPDHeader>
<TPDParent>
<TPDDetail/>
<TPDDetail/>
<TPDDetail/>
</TPDParent>
</TPDHeader>
<TPDHeader>
.....
</TPDHeader>
</DrillTPD>
最后一项评论: 我只做了工作。 NET语言,但我试图了解未经管理的方面。 感谢您的答复: