Bonjour,
Je cherche à faire des chaines de caractères de longueurs non constantes, par exemple:
Ce cas là fonctionne bien:
J'obtiens dans le NetCDF:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Par contre si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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" ;
ça me donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
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 :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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*" ;
merci d'avance!!
Partager