Discussion:Dilib, module Sgml, commande SgmlSelect
De Wicri Outils
(Redirigé depuis Discussion:Dilib, commande SgmlSelect)
Pour Ali
HfdCat $DILIB_IMPORT/Samples/RabelaisV1/Data/Main/Exploration/biblio.hfd \
| SgmlSelect -s record/TEI/teiHeader/fileDesc/titleStmt/author/affiliation/country# \
-g record/TEI/teiHeader/fileDesc/publicationStmt/date# \
-p "@g1" -p "@s1" -p @1 \
| DateCurationClass -f 1985 -s 5 \
| more
Commande DateCurationClass
- implicitement trouve la date dans la clé (avant \t).
- ne garde que les années
- options f t s (from to step) le nom de la classe est la date de début
HfdCat ... SgmlSelect | TimeCurationClass -f 1990 -t 2012 -s 2
- pistes :
- utiliser une boucle sur un Buffer pour lire le flot d'entrée.
- pour les paramètres voir getopt :
#include <unistd.h> /* getopt */
extern char *optarg; /* for getopt() */
void usage()
{
perror ("usage: AssocFastWithIndex -h hfdName [-i term1 -j term2]\n");
exit(1);
}
int main(int argc, char **argv)
{
int cod_arg;
while ((cod_arg = getopt(argc,argv,"h:i:j:nL"))!=EOF)
{switch(cod_arg)
{
case 'h':
if((hfd1=IndexOpenRead(optarg)))
{
hfd2=IndexOpenRead(optarg);
flagHfd=1;
break;
}
else
{
perror("HFD not found\n");
usage();
}
break;
case 'n':
flagInput=0;
break;
case 'i':
motI=optarg;
break;
case 'j':
if(!flagHfd) usage();
motJ=optarg;
buildAssoc(motI,motJ);
break;
default: usage();
break;
}
}
if(!flagHfd) usage();
}
ou
while ((cod_arg = getopt(argc,argv,"f:t:s:m:"))!=EOF)
{
switch(cod_arg)
{
case 'f':
nFrom=atoi(optarg);
break;
case 't':
nTo=atoi(optarg);
break;
case 's':
nStep=atoi(optarg);
break;
case 'm':
nMax=atoi(optarg);
nTo=0;
break;
}
}
- option c ou C (classification rules)
- -c ou -C pointe vers un fichier qui contient des règles
HfdCat ... SgmlSelect | TimeCurationClass -c myRules.dict
les règles sont exprimées dans des tableaux de 3 colonnes - le séparateur utilisé sera :
- la tabulation avec -c
- le ";" avec -C
Exemple :
- 0 ; 1989 ; avant 1990
- 1990 ; 1994 ; 1900 - 1994
- ...
- 2010 ; 3000 ; après 2010
Edition graphique char bar
On dispose en entrée d'un document XML
<listClass>
<class>
<name>1990</name>
<value>50</value>
<link>http://coucou</link>
<color>blue</blue>
</class>
<class>
<name>1995</name>
<value>75</value>
</class>
</listClass>
fonction :
SxmlNode *BarChart (SxmlNode *listClass, float l, float h, char *implicitColor);
Programme principal :
- lire un fichier ( année -> nombre )
- ecrit une page :
<html>
début bidon
<svg>...</svg>
fin bidon
</html>