Pesquisando arquivo de texto com o readline node.js
Por favor, considere o código abaixo. O que eu quero fazer é escolher um nomenames.txt
nocreateStream
funcionar um por um e a partir daí chamarFileSearch
funcionar comnameToSearch
como parâmetro e pesquisalist.txt
linha por linha. Então, um nome e pesquisalist.txt
linha por linha, outro nome e pesquisalist.txt
linha por linha e assim por diante ...
list.txt
, é um arquivo grande. Se encontrar uma correspondência, imprima a string de pesquisa e o número da linha. Eu pensei que iria colocar um nome e números de linha e depois passar para o segundo nome e assim por diante, mas é
Ignorando linhas. Procurei alguns nomes manualmente e os números de linha correspondentes não estão na saída)
Misturando nomes. Eu posso ver nomes na parte inicial da saída e depois em outro lugar na saída.
Código:
var fs = require('fs')
var readline = require('readline');
var nameToSearch
var createStream = function (){
var lineNumber=0;
var ended = false;
var rlName = readline.createInterface({
input : fs.createReadStream('./names.txt'),
output: process.stdout,
terminal: false
})
rlName.on('line',function(lineInNameFile){
++lineNumber;
nameToSearch=lowercase(lineInNameFile);
FileSearch(nameToSearch);
})
}
var lowercase=function(str){
return String(str).toLowerCase();
}
var FileSearch = function (searchString){
var listlineNumber=0;
var rlList = readline.createInterface({
input : fs.createReadStream('./list-2.txt'),
output: process.stdout,
terminal: false
})
rlList.on('line',function(lineInListFile){
++listlineNumber;
if (lineInListFile===searchString){
console.log( searchString+ ":" + listlineNumber);
}
})
}
var runSearch = createStream();
exports.createStream = createStream;
names.txt
se parece com isso
OLIVER
CHARLOTTE
LIAM
AMELIA
.
.
elist.txt
se parece com isso, basicamente uma palavra por linha nos dois arquivos
a
aah
aahed
aahing
aback
abacus
abacuses
abaft
abalone
abalones
.
.
Meu posto no console é algo como isto
grayson:2322
emmett:3756
emmett:6399
lily:3739
lily:6340
.
.
Eu não estou usandoreadline
módulo corretamente?
EDITAR: ao pesquisar mais e pesquisar, descobriu que ele pode ter algo a ver com a leitura da última linha. Não está lendo a última linha delist.txt
. Não sei por quê