Hi HDF help/users -
How do i read a string array dataset(variable/fixed length) ? Well, i can read a fixed length string by using the code below, however variable length string dataset array can be written, however am unable to read it back. ? Any suggestion ?
···
--------------------
//reading a fixed len/single dim string
const H5std_string DSET_STR_NAME( "string" );
const int SPACE1_DIM1 = 1;
const int SPACE1_RANK = 1;
char *wdata="hello1";
char *rdata;
DataSpace sid1(SPACE1_RANK, dims1);
H5File file( FILE_NAME, H5F_ACC_TRUNC );
StrType tid1(0, 100);
DataSet dataset= file.createDataSet(DSET_STR_NAME, tid1, sid1);
dataset.write((void*)wdata, tid1);
dataset.close();
dataset = file.openDataSet(DSET_STR_NAME);
rdata = new char[100];
memset(rdata,'\0',sizeof(rdata));
dataset.read((void*)rdata, tid1);
int len=strlen(rdata);
for(int i=0;i<len;++i)
cout <<rdata[i];
cout<<endl;
--------------------
//reading a var len string array
const H5std_string DSET_STR_NAME( "string" );
const int SPACE1_DIM1 = 4;
const int SPACE1_RANK = 1;
char *wdata[4]={"hello1","hello2","hello3","hello4"};
char *rdata;
DataSpace sid1(SPACE1_RANK, dims1);
H5File file( FILE_NAME, H5F_ACC_TRUNC );
StrType tid1(0, H5T_VARIABLE);
DataSet dataset= file.createDataSet(DSET_STR_NAME, tid1, sid1);
dataset.write((void*)wdata, tid1); //I was able to write these data into file
dataset.close();
dataset = file.openDataSet(DSET_STR_NAME);
rdata = new char[100];
memset(rdata,'\0',sizeof(rdata));
dataset.read((void*)rdata, tid1);
//How can i read this data back from file.
Thanks Again
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.