Discord Bot Прочитайте отдельные строки и затем удалите их - PullRequest
0 голосов
/ 23 апреля 2020

Я строю бота, который хранит значения в файле .txt по одному коду в каждой строке. Теперь я хочу взять только одну строку в текстовом файле, а затем удалить строку.

Это не работает так, как я это делаю, хотя b c Я понятия не имею, как удалить одну строку, а затем написать новый файл

bot.on("message", message=>{

    let args = message.content.substring(prefix.length).split(" ");



    switch(args[0]){

         case "code": 
         let codetext = message.content.replace(prefix + "code", "")

        fs.appendFile("./text.txt", codetext + "\n",(err)=>{
            if (err) throw err;
                  message.channel.send("message written")
          })
        break;
        case "getcode":

        let getcode = fs.readFileSync("./text.txt", "utf8", (err)=>{
            if (err) throw err;
        })
        var code_array = getcode.split("\n")
        message.channel.send(code_array[0])

        }    
    });

1 Ответ

0 голосов
/ 23 апреля 2020

Вы уже создали массив, поэтому вам просто нужно удалить нужные элементы и переписать то, что осталось обратно в файл, переписав старый. Есть несколько способов сделать это, все следующее изменит исходный массив:

Удалите последний элемент и верните то, что было удалено.

let popped = code_array.pop()

Удалите первый элемент и верните что было удалено.

let shifted = code_array.shift()

Удалите 3 элемента, начиная с индекса элемента 2 (3-й элемент, он основан на 0!) и верните массив того, что было удалено.

let spliced = code_array.splice(2, 3);
...