Skip to content

**** ****

for my bad memories..

h5pp


hdf5 포맷 r/w 용으로 나온 표준 libhdf5 를 사용하면 코딩량이 많을수밖에 없다..
찾아보니 h5pp 라는 라이브러리가 있길래 테스트해봄.

https://github.com/DavidAce/h5pp

짧은 코드로 되고.. 백터도 지원하고 좋은것 같음.

#include <h5pp/h5pp.h>

typedef struct {
	unsigned int id;
	float x, y, z;
} T_NODE;

int main(int argc, char *argv[]) 
{
	//h5pp::File file("test.h5", h5pp::FileAccess::REPLACE, 0);
	h5pp::File file("test.h5", h5pp::FileAccess::REPLACE);

	h5pp::hid::h5t T = H5Tcreate(H5T_COMPOUND, sizeof(T_NODE));
	H5Tinsert(T, "id", HOFFSET(T_NODE, id), H5T_NATIVE_INT);
	H5Tinsert(T, "x", HOFFSET(T_NODE, x), H5T_NATIVE_FLOAT);
	H5Tinsert(T, "y", HOFFSET(T_NODE, y), H5T_NATIVE_FLOAT);
	H5Tinsert(T, "z", HOFFSET(T_NODE, z), H5T_NATIVE_FLOAT);

	std::vector<T_NODE> nodes;
	T_NODE node;
   	node.id = 1;
	node.x = 1.0;
	node.y = 1.0;
	node.z = 1.0;
	nodes.push_back(node);
	nodes.push_back(node);
	nodes.push_back(node);
	nodes.push_back(node);
	nodes.push_back(node);
	file.writeDataset(nodes, "/nodes", T);

	std::vector<std::string> lines;
	lines.push_back("this is a vector");
	lines.push_back("of strings");
	lines.push_back("of varying lengths");
	file.writeDataset(lines, "/lines");

	return 0;
}

Categorized as: Programming



답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.