2017-09-14 28 views
0

は、この問題に関する助けが必要です。 私はNode.jsでDiscordボットを作成しています私それは何をすべきか.txtファイルからランダムな行を取得し、.txtファイルからその行を削除してください。

は、ローカルの.txtファイルからランダムに行を読みます。その後

前方に確執に(私は方法を知っている)

そして、ローカルの.txtファイルから、私が得たその正確な行を削除します。

ほぼアレイのようです。しかし、地元のもの、私はいつも速く編集することができます。私が作っ

Chart

希望:-)専門家の助けを必要とする理由です、

は、私はまだノードとJavaScriptに新しいので、私はしようと読書で学ぶが、私はここに捕まってしまいましたあなたは私の問題を理解し、私を助けることができます。ファイルから乱数を出力

let fs = require('fs'); 
let randomNumber = 
fs.readFileSync('./resources/array.txt').toString().split("\n"); 
let item = randomNumber[Math.floor(Math.random() * randomNumber.length)]; 

は、私は、次があります。

+0

何を試しましたか?問題を解決するために行ったことを示すことが重要です。ファイルを読み込んで配列を取得することも、あなたのソリューションにもっと近づける大きな第一歩です。メンタリングやコーチングが必要な場合は、[Codementor](https://www.codementor.io)、[Savvy](https://www.savvy.is)、[Hackhands](https://hackhands.com) )、[airpair](https://www.airpair.com)のいずれかを選択します。 – tadman

+0

投稿を編集しました。それは私が今持っているものです。 –

+0

ファイルを書き直すコードは、本質的に危険です。書き直す途中でクラッシュし、すべてのデータが失われる可能性があります。あなたはSQLite DBのような軽いものでこれを行うことができますか?これらは操作がはるかにやさしく、基本的なSQLを知っていれば使いやすいです。 – tadman

答えて

0

ファイルが大きすぎず、このスクリプトの実行中に追加されていない限り、データを取り出してメモリに保存し、配列を変更し、すべてのデータを削除しますテキストファイル、およびファイルへのアレイからのデータを書き換える

const fs = require('fs'); // use const ** 
const data = fs.readFileSync('./array.txt'); 
const splitData = data.split('\n'); 
const randomNumber = Math.floor(Math.random() * splitDate.length); 
const line = splitData.splice(randomNumber, 1); *** 
fs.writeFileSync('./array.txt', splitData.splice.join('\n'); **** 
console.log(line); // random line 

** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

*** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

**** https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

+0

これは、配列全体を削除し、乱数だけを保持する、私はちょうど乱数を含む1行を削除したい。 –

+0

申し訳ありませんが、私の悪い。これは動作しています... –

関連する問題