Utilisateur:PamputtBot/Creer-Categorie-Principale.cpp

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

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 :

  • python pywikipedia/pagefromfile.py -start:xxxx -end:yyyy -autosummary -notitle -file:main_cat.xml

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[i] = nom[i].substr(0,nom[i].length()-1); //pour supprimer l'espace à la fin du nom.
      ofile << "xxxx" << endl
	    << "'''Catégorie:" << nom[i] << "'''" << endl
	    << "Cette catégorie réunit les mots et locutions en [[" << nom[i] << "]] (code <code>[[" << code[nom[i]] << "]]</code>). La [[:Catégorie:Grammaire en " << nom[i] << "|section grammaire]] contient tous les types de mots comme les [[:Catégorie:Noms communs en " << nom[i] << "|noms communs]] ou les [[:Catégorie:Acronymes en " << nom[i] << "|acronymes]]. Elle contient en outre des sous-catégories thématiques : [[:Catégorie:Animaux en " << nom[i] << "|noms d’animaux]] ou [[:Catégorie:Lexique en " << nom[i] << " de la musique|lexique de la musique]], ou encore des catégories d’[[:Catégorie:Expressions en " << nom[i] << "|expressions]], ou enfin des registres de langue." << endl
	    << "* <big>[[:Catégorie:Grammaire en " << nom[i] << "|Grammaire]]</big>" << endl
	    << "* <big>[[:Catégorie:Thématiques en " << nom[i] << "|Thématiques]]</big>" << endl
	    << "* <big>[[:Catégorie:Lexiques en " << nom[i] << "|Lexiques]]</big>" << endl
	    << endl
	    << "{{CatégorieTDM}}" << endl
	    << "Voir aussi les [[:catégorie:Traductions en " << nom[i] << "|mots traduits en " << nom[i] << "]]." << endl
	    << "[[Catégorie:Langues]]" << endl
	    << "yyyy" << endl;
    }
  return 1;
}