I'm trying to modify the value of a dataset in a HDF5 file. In HDFView, the 
type of this dataset is : String, length =variable, 1

 

This is the code C# I used :

//------------------------------

H5FileId oFileId = H5F.open(@"C:\test\TestVL.h5", H5F.OpenMode.ACC_RDWR);

H5DataSetId oDataSetId = H5D.open(oFileId, "DatasetName");

Encoding m_oEncoder = Encoding.GetEncoding("ISO-8859-1");                    

byte[] tBuffer = m_oEncoder.GetBytes("string to write");

H5DataTypeId oDataTypeId = H5D.getType(oDataSetId);

hvl_t[] vlArray = new hvl_t[1];

unsafe

{

vlArray[0].p = H5CrtHeap.Allocate(new IntPtr(size * sizeof(byte))).ToPointer();

vlArray[0].len = (ulong)(size * sizeof(byte));

for (int i = 0; i < size; i++)

{                                                        

((byte*)vlArray[0].p)[i] = tBuffer[i];                          

}

}

H5D.write(oDataSetId, oDataTypeId, new H5Array<hvl_t>(vlArray));

//------------------------------

 

The instruction HD5.write throw an "AccessViolationException" exception and I 
don't see why ?

 

If you can help me,

 

Regards

 

Stéphane.

 

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org

Reply via email to