从 .h5 文件中读取数据的正确方法是什么?
表中存储了不同类型的数据。由于此文件的结构,数据类型为“复合”。
要打开所需的表,我使用:
struct metadata
{
public Chararray a;
public int b;
public float c;
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct Chararray
{
private char* recordedText;
public char* RecordedText
{
get
{
return recordedText;
}
set
{
recordedText = value;
}
}
public override string ToString()
{
string s;
IntPtr ipp = (IntPtr)this.recordedText;
s =System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ipp);
System.Runtime.InteropServices.Marshal.FreeHGlobal(ipp);
return s;
}
}
读取数据
H5DataSetId dsetId = H5D.open(fileID, "/metadata/songs");
其中 fileID 是 H5FileId。
metadata[] s1 = new metadata[1];
H5DataTypeId dt = H5D.getType(dsetId);
H5D.read(dsetId, dt, new H5Array<metadata>(s1));
但是,输入的输出s1
不正确。