使用具有不同数据类型的HDF5

时间:2013-04-11 11:23:49

标签: c# hdf5

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

0 个答案:

没有答案