1

从 .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不正确。

4

0 回答 0