Je veux obtenir une ligne aléatoire d'un fichier vers mon robot discord mais je ne sais pas comment.
a déjà essayé quelque chose sur le site Web, mais cela n'aide pas du tout, aucun d'entre eux ne fonctionne.
Avez-vous de l'aide?
[js]
3 Réponses :
Vous pouvez utiliser cette méthode:
function getRandomLine(filename){ fs.readFile(filename, function(err, data){ if(err) throw err; var lines = data.split('\n'); // this is random line const readedLine = lines[Math.floor(Math.random()*lines.length)]; console.log(readedLine); }) }
Pour plus d'informations, vous pouvez lire ceci: Récupérer une ligne aléatoire d'un fichier
déjà essayé, comment je peux faire: console.log (the_random_line_text)
const t = lignes [Math.floor (Math.random () * lines.length)]; console.log (t);
Pendant que l'autre solution fonctionne, vous pouvez utiliser ce code pour le faire de manière synchrone, ce qui facilite un peu le travail avec:
function getRandomLine(filename){ var data = fs.readFileSync(filename, "utf8"); var lines = data.split('\n'); return lines[Math.floor(Math.random()*lines.length)]; } var the_random_line_text = getRandomLine('file.txt'); console.log(the_random_line_text);
Remarque: car cela bloque maintenant le Si vous lisez des fichiers très volumineux, soyez prudent, cela pourrait causer des problèmes. Si vous utilisez effectivement un très gros fichier, je vous recommande de le charger en tant que tableau lorsque le programme démarre et de simplement réfréner ce tableau, sans lire le fichier à chaque fois que cela est nécessaire.
J'ai trouvé une méthode plus simple.
message.channel.send(getRandomLine())
Et si vous essayez d'envoyer un message dans une commande.
fs = require('fs') var data; fs.readFile('filename.txt', 'utf8', function (err,rawData) { if (err) { return console.log(err); } data = rawData.split('\n'); }); function randomInt (low, high) { return Math.floor(Math.random() * (high - low) + low); } function getRandomLine(){ return data[randomInt(0,data.length)]; }
Mettez cela dans votre commande.
Remplacez "filename.txt" par votre nom, gardez "utf8" le même.
REMARQUE: fonctionne pour les gros fichiers.
Montrez-nous ce que vous avez essayé
Double possible de Récupération d'une ligne aléatoire d'un fichier