diff options
author | Larry Knox <lrknox@hdfgroup.org> | 2022-07-26 19:30:04 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 19:30:04 (GMT) |
commit | d0739f13c131fd8d85c4b3247c26ca2bca515ece (patch) | |
tree | a70ce4e47b6689ae6b9aa5d47c9e143347998a97 /doxygen/examples/H5TBAget_fill.c | |
parent | 6eaa59d2f83a89e9b4808f04caa48d313e658df1 (diff) | |
download | hdf5-d0739f13c131fd8d85c4b3247c26ca2bca515ece.zip hdf5-d0739f13c131fd8d85c4b3247c26ca2bca515ece.tar.gz hdf5-d0739f13c131fd8d85c4b3247c26ca2bca515ece.tar.bz2 |
Revert "1.12 eliminate unnecessary errors in the error stack (#1880)" (#1935)
This reverts commit f6997681335f0b5fe2e8904f9108a71c5200fb2d.
Diffstat (limited to 'doxygen/examples/H5TBAget_fill.c')
-rw-r--r-- | doxygen/examples/H5TBAget_fill.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/doxygen/examples/H5TBAget_fill.c b/doxygen/examples/H5TBAget_fill.c new file mode 100644 index 0000000..15eae8b --- /dev/null +++ b/doxygen/examples/H5TBAget_fill.c @@ -0,0 +1,43 @@ +unsigned char tmp_fill_buf[40]; +... + + file_id = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); +dataset_id = H5Dopen(file_id, TABLE_NAME, H5P_DEFAULT); +datatype_id = H5Dget_type(dataset_id); + +status = H5TBget_table_info(file_id, TABLE_NAME, &nfields, &nrecords); + +hasfill = H5TBAget_fill(file_id, TABLE_NAME, dataset_id, tmp_fill_buf); + +for (i = 0; i < nfields; i++) { + member_type_id = H5Tget_member_type(datatype_id, (unsigned)i); + native_mem_type_id = H5Tget_native_type(member_type_id, H5T_DIR_ASCEND); + member_offset = H5Tget_member_offset(datatype_id, (unsigned)i); + printf("member_offset: %i\n", member_offset); + memb_class = H5Tget_class(member_type_id); + switch (memb_class) { + case H5T_INTEGER: + /* convert unsigned char array to integer */ + break; + case H5T_FLOAT: + /* convert unsigned char array to double or float */ + + if (H5Tequal(native_mem_type_id, H5T_NATIVE_DOUBLE)) { + } + else if (H5Tequal(native_mem_type_id, H5T_NATIVE_FLOAT)) { + f.i = tmp_fill_buf[member_offset] | (tmp_fill_buf[member_offset + 1] << 8) | + (tmp_fill_buf[member_offset + 2] << 16) | (tmp_fill_buf[member_offset + 3] << 24); + printf("Field %i Fill Value: %lf\n", i, f.f); + } + break; + + case H5T_STRING: + /* convert unsigned char array to string */ + strsize = H5Tget_size(member_type_id); + + printf("Field %i Fill Value: ", i); + for (j = 0; j < strsize; j++) + printf("%c", tmp_fill_buf[member_offset + j]); + printf("\n"); + break; + } |