чтение указанного c числа, которое находится между двумя строками из текстового файла, используя nodejs - PullRequest
0 голосов
/ 03 августа 2020

Я учусь на Node.JS из SAP последние несколько недель и пытаюсь зафиксировать число, которое находится между двумя строками в текстовом файле. Я пытался сопоставить, читая множество примеров кодов, но безуспешно. Как я мог правильно написать этот код? Я пробовал использовать приведенный ниже код. Однако это только частичный код, и он не работает так, как мне хотелось бы.

Требования: TextFile содержит данные, как показано ниже, файл, который нужно прочитать, чтобы зафиксировать число, которое находится между "FETCH:" и «ЗАПИСИ» и запишите этот номер в другой текстовый файл.

| 27.07.2020 | 10: 19: 09 | 1 LUW подтверждено и 1 LUW будет удалено с помощью функционального модуля | 27.07.2020 | 10:19 : 10 | OPEN_CURSOR JOIN_FLEXA_BKPF | 27.07.2020 | 10: 19: 10 | ВЫБРАТЬ: 1000 ЗАПИСЕЙ | 27.07.2020 | 10: 19: 10 | OPEN_CURSOR JOIN_FLEXA_BKPF | 27.07.2020 | 10: 19: 10 | ВЫБРАТЬ: 193 ЗАПИСЕЙ | 27.07.2020 | 10: 19: 10 | OPEN_CURSOR JOIN_FLEXA_BKPF | 27.07.2020 | 10: 19: 10 | ВЫБРАТЬ: 500 ЗАПИСЕЙ | 27.07.2020 | 10: 19: 10 | OPEN_CURSOR JOIN_FLEXA_BKPF

Я написал этот код сам. Я могу читать строку за строкой, но не могу записать число.

const readline = require('readline');

const readInterface = readline.createInterface({
    input  : fs.createReadStream('BIREQFILE.txt'),
    output : process.stdout,
    console : false
});
readInterface.on('line',function(line){
    const extractNumbersFromString = line.match(/-?\d+/g);
    fs.writeFile('output.txt',extractNumbersFromString);
    
});

С уважением и уважением

LN

1 Ответ

0 голосов
/ 03 августа 2020

Ваше регулярное выражение необходимо изменить на line.match (/ (? <= (FETCH:)) \ d + / g) </p>

const line = "27.07.2020|10:19:10|FETCH:1000 RECORDS"
const extractNumbersFromString = line.match(/(?<=(FETCH:))\d+/g)
console.log(extractNumbersFromString) // outputs ["1000"]
...