diff options
Diffstat (limited to 'c++/examples/create.C')
-rw-r--r-- | c++/examples/create.C | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/c++/examples/create.C b/c++/examples/create.C new file mode 100644 index 0000000..f17bd09 --- /dev/null +++ b/c++/examples/create.C @@ -0,0 +1,112 @@ +// +// This example writes a dataset to a new HDF5 file. +// + +#include <string> +#ifndef H5_NO_NAMESPACE +using namespace std; +#endif + +#ifdef OLD_HEADER_FILENAME +#include <iostream.h> +#else +#include <iostream> +#endif +#include "H5Cpp.h" + +#ifndef H5_NO_NAMESPACE +using namespace H5; +#endif + +const string FILE_NAME( "SDS.h5" ); +const string DATASET_NAME( "IntArray" ); +const int NX = 5; // dataset dimensions +const int NY = 6; +const int RANK = 2; + +int main (void) +{ + // + // Data initialization. + // + int i, j; + int data[NX][NY]; // buffer for data to write + for (j = 0; j < NX; j++) + { + for (i = 0; i < NY; i++) + data[j][i] = i + j; + } + // + // 0 1 2 3 4 5 + // 1 2 3 4 5 6 + // 2 3 4 5 6 7 + // 3 4 5 6 7 8 + // 4 5 6 7 8 9 + // + + // Try block to detect exceptions raised by any of the calls inside it + try + { + // + // Create a new file using H5F_ACC_TRUNC access, + // default file creation properties, and default file + // access properties. + // + H5File file( FILE_NAME, H5F_ACC_TRUNC ); + + // + // Define the size of the array and create the data space for fixed + // size dataset. + // + hsize_t dimsf[2]; // dataset dimensions + dimsf[0] = NX; + dimsf[1] = NY; + DataSpace dataspace( RANK, dimsf ); + + // + // Define datatype for the data in the file. + // We will store little endian INT numbers. + // + IntType datatype( PredType::NATIVE_INT ); + datatype.setOrder( H5T_ORDER_LE ); + + // + // Create a new dataset within the file using defined dataspace and + // datatype and default dataset creation properties. + // + DataSet dataset = file.createDataSet( DATASET_NAME, datatype, dataspace ); + + // + // Write the data to the dataset using default memory space, file + // space, and transfer properties. + // + dataset.write( data, PredType::NATIVE_INT ); + } // end of try block + + // catch failure caused by the H5File operations + catch( FileIException error ) + { + error.printError(); + } + + // catch failure caused by the DataSet operations + catch( DataSetIException error ) + { + error.printError(); + } + + // catch failure caused by the DataSpace operations + catch( DataSpaceIException error ) + { + error.printError(); + } + + // catch failure caused by the DataSpace operations + catch( DataTypeIException error ) + { + error.printError(); + } + + return 0; // successfully terminated +} + |