Je lis un contenu de ce fichier texte avec 3 lignes:

"Le premier choix était:

Le deuxième choix était:

Le troisième choix était: "

J'ai divisé par "\ n" et je veux ajouter un nombre à la fin de chaque ligne saisie par l'utilisateur. Les entrées utilisateur sont 3 nombres différents (de select tags) appelés "rang1", "rang2", "rang3" et je veux avoir chaque numéro à la fin de chaque ligne du fichier texte nouvellement créé.

JavaScript:

var data = fs.readFileSync("data1.txt", "utf-8"); 
var lines = data.split("\n");

lines.forEach(function(line){
var newLine = line + /*What should be appended (rank1,rank2,rank3)*/;
var output = fs.appendFileSync('file', newLine, 'utf8');
})

Les balises de sélection:

<select name="rank1" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>

</select>

<select name="rank2" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>

</select>

<select name="rank3" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
</select>

Production attendue:

"Le premier choix était: 1 Le deuxième choix était: 3 Le troisième choix était: 2"

Comment puis-je implémenter cela? Merci beaucoup d'avance!

1
Gabriela Boyadjiyska 11 avril 2018 à 17:38

3 réponses

Meilleure réponse

Il y a une doublure pour ce que vous voulez faire:

file.split('\n').map( (line) => line + choices.shift() ).join('\n')

De plus, tout cela peut être fait de manière asynchrone:

const fs = require('fs');
const choices = [ "rank1", "rank2", "rank3" ];

fs.readFile(
    './data1.txt',
    'utf-8',
    (err, file) => fs.writeFile(
        './data1.txt',
        file.split('\n').map( (line) => line + choices.shift() ).join('\n'),
        (err) => {}
    )
);
2
RaphaMex 11 avril 2018 à 15:19

Je pense qu'à la place, vous pouvez utiliser la boucle for pour parcourir les lignes et les éléments select, puis exporter la sortie dans un fichier.

var data = fs.readFileSync("data1.txt", "utf-8"); 
var lines = data.split("\n");
var output;  
for(var i =0; i < lines.length;i++){
  var newLine = lines[i] + document.getElementsByName('rank'+(i+1))[0].value;
     output += newline; 
}

 fs.appendFileSync('file', output, 'utf8');
1
mooga 11 avril 2018 à 15:08
document.getElementsByName('rank1')[0].value
document.getElementsByName('rank2')[0].value
document.getElementsByName('rank3')[0].value
0
noamyg 11 avril 2018 à 14:55