Wicri:EuropiumV1/Génération tableau
De Wicri Terre
Cette page contient les codes sources nécessaires à la génération d'un modèle contenant un tableau périodique pour la version EuropiumV1 du « Serveur d'exploration sur l'europium ».
Programme de génération
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <time.h>
#include <math.h>
#include "SxmlNode.h"
#include "StrDict.h"
SxmlNode *indexNode, *keyNode;
char *key;
char *frequenceStr;
int max,frequence,niveau,frequenceElem;
main()
{
StrDict *table;
table = NewStrDict();
while ((indexNode=SxmlInputNextDocumentElement()))
{
keyNode=SxmlGetFirstChildByTagName(indexNode, "kw");
if (!keyNode)
{
perror("File not fit (no element kw)");
exit (EXIT_FAILURE);
}
key=SxmlLeafText(keyNode);
frequenceStr=SxmlLeafText(SxmlGetFirstChildByTagName(indexNode, "f"));
StrDictSet (table, strdup(key), strdup(frequenceStr));
frequence=atoi(frequenceStr);
if(frequence>max)
{
max=frequence;
}
}
/* printf("%s\n", StrDictSearch(table,"Cl"));
printf("%d\n", max); */
StrDictIteratorReset(table);
printf("{{Tableau périodique pondéré flottant\n");
printf(" | niveau=0 \n");
while (key=StrDictNext(table))
{
frequenceElem=atoi(StrDictValue(table));
niveau=(8*frequenceElem/max)+1;
printf("| %s niveau=%d\n",key,niveau);
/*printf(" | %s lien=%d\n",key));*/
}
printf ("}}\n");
StrDictFree(table);
}
Compilation
gcc EuropiumV1/Import/generTableau.c $DILIB_CC -o EuropiumV1/bin/generTableau
Génération
HfdCat EuropiumV1/Data/Main/Exploration/elemChimie.i.hfd| SxmlCut idx/l | ./EuropiumV1/bin/generTableau
Mise en œuvre
WicriGetPage -l wicri-terre.fr -p "Wicri:EuropiumV1/Génération tableau" | MediaWikiExtractSources -w | HfdStoreFile