Buscando archivo de texto con readline node.js
Por favor considere el siguiente código. Lo que quiero hacer es elegir el nombre denames.txt
encreateStream
funcionar uno por uno y desde allí llamarFileSearch
funcionar connameToSearch
como parámetro y búsquedalist.txt
linea por linea. Entonces un nombre y búsquedalist.txt
línea por línea, otro nombre y búsquedalist.txt
línea por línea y así sucesivamente ...
list.txt
, es un archivo grande. Si encuentra una coincidencia, envíe la cadena de búsqueda y el número de línea. Pensé que pondría un nombre y números de línea y luego pasaría al segundo nombre y así sucesivamente, pero es
Saltar filas Busqué algunos nombres manualmente y los números de línea correspondientes no están allí en la salida)
Mezclando nombres. Puedo ver nombres en la parte inicial de la salida y luego en otro lugar de la salida.
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 ve como esto
OLIVER
CHARLOTTE
LIAM
AMELIA
.
.
ylist.txt
se ve así, básicamente una palabra por línea en ambos archivos
a
aah
aahed
aahing
aback
abacus
abacuses
abaft
abalone
abalones
.
.
Mi salida puesta en la consola es algo como esto
grayson:2322
emmett:3756
emmett:6399
lily:3739
lily:6340
.
.
¿No estoy usandoreadline
módulo correctamente?
EDITAR: Al investigar más y buscar descubrió que podría tener que hacer algo con la lectura de la última línea. No está leyendo la última línea delist.txt
. No estoy seguro por qué