Пожалуйста, рассмотрите ниже код. Что я хочу сделать, так это выбрать имя от names.txt
в createStream
функции по одному и оттуда вызвать функцию FileSearch
с помощью функции nameToSearch
в качестве параметра и поиска list.txt
по строкам. Таким образом, одно имя и поиск list.txt
строка за строкой, другое имя и поиск list.txt
строка за строкой и т. Д.Поиск текстового файла с помощью readline node.js
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
. Я не уверен, почему
Просто хочу, чтобы убедиться, что вы ждете 'не список-2.txt'' list.txt', как показано здесь: 'вход: fs.createReadStream (» ./ список-2.txt '), ' – Nijikokun
' list-2.txt' был опечаткой, проблема осталась такой, как есть. Но мне это удалось. Я отправлю ответ. благодаря – user1207289