Мне удается решить эту проблему с помощью построчного модуля, и теперь вывод точный, как и ожидалось. вот код
уйста, рассмотрите код ниже. Что я хочу сделать, это выбрать имя изnames.txt
вcreateStream
функция по одному и оттуда вызовFileSearch
функция сnameToSearch
как параметр и поискlist.txt
построчно. Так одно имя и поискlist.txt
построчно, другое имя и поискlist.txt
построчно и так далее ...
list.txt
это большой файл. Если найдено совпадение, выведите строку поиска и номер строки. Я думал, что это будет поставить одно имя и номера строк, а затем перейти к второму имени и так далее, но это
Пропуск рядов. Я искал некоторые имена вручную, и соответствующие номера строк отсутствуют в выводе)
Смешивание имен. Я вижу имена в начальной части вывода, а затем где-то еще в выводе.
Код:
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
выглядит так
OLIVER
CHARLOTTE
LIAM
AMELIA
.
.
а такжеlist.txt
выглядит так, в основном одно слово на строку в обоих файлах
a
aah
aahed
aahing
aback
abacus
abacuses
abaft
abalone
abalones
.
.
Мой выход на консоль выглядит примерно так
grayson:2322
emmett:3756
emmett:6399
lily:3739
lily:6340
.
.
Я не используюreadline
модуль правильно?
РЕДАКТИРОВАТЬ: после изучения большего и поиска обнаружил, что, возможно, придется что-то делать с чтением последней строки. Это не чтение последней строкиlist.txt
, Я не уверен почему