2017-01-20 76 views
-3

需要關於如何通過具有特定值的兩行之間的行循環遍歷文件的幫助。我能夠按行讀入行,但兩行具體的值之間不能循環在兩個文件之間循環遍歷node.js中的文件

日期

start_of_data

數據1

數據2

end_of_data

更多數據1

更多數據2

需要得到start_of_data和end_of_data之間的所有行。感謝您的幫助。

回答

1

可能你是新來的StackOverflow和Node.js的所以人們反對投票你的問題的原因「沒有把任何努力,你只是找人,誰可以做你的工作」

我發佈答案讓你明白這樣做的另一種方式,也從要求前進沒有做足夠的研究這些問題,而不是把任何努力避免

注:這個答案不只是循環,但使用良好的人機界面稱爲readline。當文件非常大時,這非常好,因爲它使用節點流。

代碼:

const readline = require('readline'); 
const fs = require('fs'); 

const filename = 'some.txt'; 

const start = 'start_of_data'; 
const end = 'end_of_data'; 

var write_active = false; 

const rl = readline.createInterface({ 
    input: fs.createReadStream(filename) 
}); 

rl.on('line',function(line){ 

    //Start and end logic 
    if(line == start){ 
     write_active = true; 
    } 
    else if(line == end){ 
     write_active = false; 
    } 

    //Write between the lines 
    if(write_active && (line!=start)){ 
     console.log(line); 
    } 

}) 
+1

謝謝@ user3151330。是的,我對stackoverflow和node.js是新手。我寫了下面的代碼並卡住了。無論如何,在閱讀您的代碼後意識到我錯過了什麼。 VAR INDI = '假' 變種lineReader =要求( '的ReadLine')createInterface({ 輸入:需要( 'FS')createReadStream( './ input5.txt') }); lineReader.on( '線',函數(線){ 如果(line.includes( 'start_of_data')){ INDI = '真' } 如果(INDI === '真'){ 控制檯.log(line) } if(line.includes('end_of_data')){ indi ='false' } }); – Joma