Cette routine écrite en c++ va lire un fichier stat.csv et génère un fichier main_cat.xml qui est ensuite donner au script pagefromfile de pywikipedia qui s’utilise comme ça :
Enfin ce code fait appel à un fichier code_langue.cpp qui contient juste le remplissage du « map » code.
#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <string>
#include <vector>
#include <cstdlib>
#include <map>
#include "code_langue.cpp"
using namespace std;
int main(int argc, char **argv)
{
ifstream infile("stat.csv");
//stat.csv est creer de la manière suivante
//sélectionner l'ensemble des cases du tableau de stat
//à Wiktionnaire:Statistiques
//Coller le contenu (collage spécial) dans un tableau de manière
//à ce que chaque colonne du tableau de stat se retrouve dans une
//colonne du tableur.
//Enfin, supprimer toutes les colonnes autres que le nom de la langue
if(!infile) {
cout << "Probleme avec " << text << endl;
return -1;
}
vector <string> nom;
string line;
while(getline(infile,line)) {
nom.push_back(line);
// cout << "verif : " << nom.back() << endl;
}
infile.close();
map<string,string> code;
get_code_map(code);
ofstream ofile("main_cat.xml");
for(unsigned int i=0 ; i<nom.size() ; i++)
{
nom = nom.substr(0,nom.length()-1); //pour supprimer l'espace à la fin du nom.
ofile << "xxxx" << endl
<< "'''Catégorie:" << nom << "'''" << endl
<< "Cette catégorie réunit les mots et locutions en << "]] (code <code>] << "]]</code>). La << "|section grammaire]] contient tous les types de mots comme les << "|noms communs]] ou les << "|acronymes]]. Elle contient en outre des sous-catégories thématiques : << "|noms d’animaux]] ou << " de la musique|lexique de la musique]], ou encore des catégories d’ << "|expressions]], ou enfin des registres de langue." << endl
<< "* <big> << "|Grammaire]]</big>" << endl
<< "* <big> << "|Thématiques]]</big>" << endl
<< "* <big> << "|Lexiques]]</big>" << endl
<< endl
<< "{{CatégorieTDM}}" << endl
<< "Voir aussi les << "|mots traduits en " << nom << "]]." << endl
<< "]" << endl
<< "yyyy" << endl;
}
return 1;
}