从.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
中的输出不正确。