1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // librairie de gestion des répertoires et fichiers
- const fs = require("fs");
- const path = require("path");
- // librairie de gestion des arguments de la ligne de commande
- var argv = require("optimist").argv;
- // librairie de gestion du hanzi
- const opencc = require('node-opencc');
- // librairie de gestion des fichiers csv
- var csv = require("comma-separated-values");
- // données de stockage
- var fichierCSV = "Wohok-table.csv";
- // en entrée, on donne le nom du fichier à traiter sans le répertoire
- var repertoireInitial = "./";
- var argument = argv._[0];
- fichierDonnées = path.join(repertoireInitial,argument);
- // DEBUG
- // console.log(fichierDonnées);
- // données de stockage
- var fichierCSV = "X-" + argument;
- // utilitaires
- var tab = "\t";
- var endLine = "\n";
- // Variables fichier des fichiers csv, json et xml
- fichierJson = path.join(repertoireInitial, argument + ".json");
- // on crée le fichier csv
- var moncsv = fs.createWriteStream(fichierCSV);
- var fichierATraiter = fs.readFileSync(fichierDonnées, "UTF-8");
- // DEBUG
- // console.log(fichierATraiter);
- var monjson = new csv(fichierATraiter, {
- header: ['hanzi', 'pinyin', 'grammar', 'translation']
- }).parse();
- // la ligne CSV qu'on va écrire dans le fichier CSV
- var ligneCSV = "";
- var sauve = "";
- monjson.forEach(function(enregistrement){
- // DEBUG
- // console.log(enregistrement);
- ligneCSV = "";
-
- if (enregistrement.grammar === "undefined") {
- // console.log(enregistrement.hanzi, "**",enregistrement.pinyin);
- enregistrement.grammar = enregistrement.hanzi;
- enregistrement.translation = enregistrement.pinyin;
- enregistrement.hanzi = sauve.hanzi;
- enregistrement.pinyin = sauve.pinyin;
- // console.log("nouveau: ", enregistrement.hanzi, "**",enregistrement.pinyin);
- }
-
- sauve = enregistrement;
- ligneCSV = enregistrement.hanzi + tab + enregistrement.pinyin + tab + enregistrement.grammar + tab +enregistrement.translation + endLine;
- // DEBUG console.log(ligneCSV);
- // Ecriture de la ligne CSV
- moncsv.write(ligneCSV);
- })
- // DEBUG
- // console.log(monjson);
- // Fermeture des fichiers json, xml et csv
- // on ferme le fichier CSV
- moncsv.end();
|