C++ NetCDF et chaine de caractères
Bonjour,
Je cherche à faire des chaines de caractères de longueurs non constantes, par exemple:
Ce cas là fonctionne bien:
Code:
1 2 3 4 5 6 7 8
| static const int NX = 12;
static const int NY = 7;
NcFile dataFile("simple_xy.nc", NcFile::Replace);
NcDim* xDim = dataFile.add_dim("x", NX);
NcDim* yDim = dataFile.add_dim("y", NY);
NcVar *monChar = dataFile.add_var("monChar", ncChar, xDim, yDim);
char* monCharUn[] = {"aaaaaa","bbbbbb","cccccc","dddddd", "eeeeee", "ffffff", "gggggg", "hhhhhh", "iiiiii", "jjjjjj", "kkkkkk", "llllll"};
monChar->put(&monCharUn[0][0], NX, NY); |
J'obtiens dans le NetCDF:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| monChar =
"aaaaaa",
"bbbbbb",
"cccccc",
"dddddd",
"eeeeee",
"ffffff",
"gggggg",
"hhhhhh",
"iiiiii",
"jjjjjj",
"kkkkkk",
"llllll" ; |
Par contre si je fais :
Code:
1 2 3 4 5 6 7 8
| static const int NX = 12;
static const int NY = 7;
NcFile dataFile("simple_xy.nc", NcFile::Replace);
NcDim* xDim = dataFile.add_dim("x", NX);
NcDim* yDim = dataFile.add_dim("y", NY);
NcVar *monChar = dataFile.add_var("monChar", ncChar, xDim, yDim);
char* monCharUn[] = {"aaaaaa","bbb","cccccc","dddddd", "eeeeee", "ffffff", "gggggg", "hhhhhh", "iiiiii", "jjjjjj", "kkkkkk", "llllll"};
monChar->put(&monCharUn[0][0], NX, NY); |
ça me donne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| monChar =
"aaaaaa",
"bbb\000ccc",
"ccc\000ddd",
"ddd\000eee",
"eee\000fff",
"fff\000ggg",
"ggg\000hhh",
"hhh\000iii",
"iii\000jjj",
"jjj\000kkk",
"kkk\000lll",
"lll\000\000\000*" ; |
snif, comment faire pour avoir des éléments de longueurs différentes, sachant que quand je fais le NetCDF à la main (ncgen) ça marche bien :/
merci d'avance!!