2017-09-14 1 views
0

이 파일에 대한 도움이 필요합니다. Node.js에 Discord 봇을 만들고 있습니다..txt 파일에서 임의의 줄을 가져온 다음 .txt 파일에서 줄을 제거하십시오.

내가 그 무엇을 :

로컬 .txt 인 파일에서 임의의 라인을 읽어보십시오.

그런 다음

그런 다음 로컬 .txt 인 파일에서, 내가 가진 그 정확한 줄을 삭제 (나는 방법을 알고) 불화로 전달합니다.

거의 배열과 같습니다. 그러나, 지방의 것, 나는 항상 빨리 편집 할 수있다. 내가 만든

Chart

희망 :-) 전문가의 도움을 필요로 그 이유는,

나는 여전히 노드와 자바 스크립트에 새로 온 사람, 그래서 내가 노력하고 독서에 의해 배우는,하지만 난 여기에 붙어있어 너는 내 문제를 이해하고 너는 나를 도울 수있다. 파일에서 임의의 숫자를 출력

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

죄송합니다, 형편 없음. 이것은 작동 중입니다 ... –

관련 문제