// 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 // libvrairie de lecture de lignes de texte var readline = require('readline') // librairie de traitement du pinyin // const pinyinizer = require('pinyinizer') // librairie de gestion du hanzi // const opencc = require('node-opencc') // librairie de gestion des fichiers csv var csv = require('comma-separated-values') // Nom du fichier entrée 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); // Nom du fichier xml fichierXml = fichierDonnées.replace('.csv', '.xml') // DEBUG console.log(fichierXml) var tab = "\t" var rc = "\n" var ligne = { numero: '', pinyin: '', hanzi: '', translation: '', pinyin1: '', hanzi1: '', translation1: '', themodule: '', unit: '', book: '' } function resetLigne() { numero = '' pinyin = '' hanzi = '' translation = '' pinyin1 = '' hanzi1 = '' translation1 = '' themodule = '' unit = '' book = '' } // la ligne CSV qu'on lit var ligneCSV = '' prelude = ` ` fin = ` ` // on crée et ouvre le fichier de sortie xml var monxml = fs.createWriteStream(fichierXml); console.log('Création fichier de sortie') // on ouvre et lit le fichier csv var fichierATraiter = fs.readFileSync(fichierDonnées, "UTF-8"); console.log('Ouverture fichier de données') var moncsv = new csv(fichierATraiter, { header: [ 'numero', 'pinyin', 'hanzi', 'translation', 'pinyin1', 'hanzi1', 'translation1', 'themodule', 'unit', 'book' ], cast: [ 'String', 'String', 'String', 'String', 'String', 'String', 'String', 'String', 'String', 'String' ] }).parse(); console.log('Ouverture fichier faite') // écriture du prélude monxml.write(prelude) monxml.write(rc) lineNumber = 0 // transformation et écriture des lignes dans le fichier xml moncsv.forEach(function (enregistrement) { // DEBUG //console.log(enregistrement.numero) lineNumber = lineNumber + 1 console.log('lineNumber : ',lineNumber) // row 1 monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.numero) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.pinyin) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) // row 2 monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.hanzi) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) // row 3 monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.translation) monxml.write('') monxml.write(rc) monxml.write('') // row 4 monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.pinyin1) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.hanzi1) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) // row 5 monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(enregistrement.translation1) monxml.write('') monxml.write(rc) monxml.write('') monxml.write(rc) resetLigne() }) // écriture de la fin dans le fichier xml monxml.write(fin) // fermeture du fichier de sortie xml monxml.end()