123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- const fs = require("fs");
- const path = require("path");
- var argv = require("optimist").argv;
- const pinyinizer = require('pinyinizer');
- const opencc = require('node-opencc');
- const builder = require('xmlbuilder');
- var csv = require("comma-separated-values");
- var fichierXml = "chinwa-table.xml";
- var fichierJson = "chinwa-table.json";
- var fichierCSV = "chinwa-table.csv";
- var repertoireInitial = "/home/eric/Devs/Nodejs/Listes/Chinwa";
- var argument = argv._[0];
- fichierDonnées = path.join(repertoireInitial,argument);
- var tab = "\t";
- var endLine = "\n";
- fichierXml = path.join(repertoireInitial, argument + ".xml");
- fichierJson = path.join(repertoireInitial, argument + ".json");
- fichierCSV = path.join(repertoireInitial, argument + "-1.csv");
- var feed = builder.create('chinwatable', {
- version: '1.0',
- encoding: 'UTF-8',
- standalone: true
- });
- var moncsv = fs.createWriteStream(fichierCSV);
- var json = fs.createWriteStream(fichierJson);
- json.write('{"chinwa1":[');
- var fichierATraiter = fs.readFileSync(fichierDonnées, "UTF-8");
- var monjson = new csv(fichierATraiter, {
- header: [
- 'hanzi',
- 'traditional',
- 'pinyin',
- 'translation',
- 'anglais',
- 'classifier',
- 'lesson',
- 'sound',
-
- 'origin'],
- cast: [
- 'String',
- 'String',
- 'String',
- 'String',
- 'String',
- 'String',
- 'String',
- 'String',
-
- 'String']
- }).parse();
- var ligneCSV = "";
- var ele = null;
- var l = 0;
- monjson.forEach(function(enregistrement){
-
-
- ligneCSV = "";
- ele = null;
- l = l + 1;
- console.log("ligne: " , l);
- try {
- enregistrement.traditional = opencc.simplifiedToTraditional(enregistrement.hanzi).trim();
-
-
-
- enregistrement.translation = enregistrement.translation.replace(/;/g, " /");
- enregistrement.translation = enregistrement.translation.replace(/, /g, " / ");
- enregistrement.anglais = enregistrement.anglais.replace(/;/g, " /");
- enregistrement.anglais = enregistrement.anglais.replace(/, /g, " / ");
- if (enregistrement.classifier == "") {
- enregistrement.classifier = "";
- }
-
- enregistrement.hanzi = enregistrement.hanzi.trim();
- enregistrement.pinyin = enregistrement.pinyin.trim();
- enregistrement.translation = enregistrement.translation.trim();
- if (enregistrement.hanzi.length == 1) {
- enregistrement.charcode = enregistrement.hanzi.charCodeAt(0);
- } else {
- enregistrement.charcode= 0;
- }
- ligneCSV = enregistrement.hanzi + tab +
- enregistrement.traditional + tab +
- enregistrement.pinyin + tab +
- enregistrement.translation + tab +
- enregistrement.anglais + tab +
- enregistrement.classifier + tab +
- enregistrement.lesson + tab +
- enregistrement.sound + tab +
- enregistrement.origin + tab +
- enregistrement.charcode +
- endLine;
-
-
- moncsv.write(ligneCSV);
-
- json.write(JSON.stringify(enregistrement) + ",");
- var ele = feed.ele({enregistrement});
- } catch (err) {
- console.log(err);
- }
- })
-
-
- moncsv.end();
- fs.writeFileSync(fichierXml, feed.end({
- pretty: true
- }));
- json.write('{},]}');
- json.end();
|