使用node.js對兩個文本文件逐行進行對比,然后把具有相同內容的行輸出到第三個文件上,用什么方法比較好處理?
使用node.js對兩個文本文件逐行進行對比,然后把具有相同內容的行輸出到第三個文件上,用什么方法比較好處理?
我試了一下,使用了github上的line-reader模塊,可以逐行讀到文件的內容。但是我沒有辦法控制流程。沒有辦法控制拿一個文件的
第一行和第二個文件的所有行對比,然后再把第一個文件的第二行和第二個文件的所有行對比,這樣依次進行。
請大家指點,謝謝!
附代碼
fs.open(fWriteName,'a+',function(err,fd){
? ? if(err){
? ? throw err
? ? }
? ? var datestart=new Date();
? ?var time=datestart.getHours()+':'+datestart.getMinutes()+':'+datestart.getSeconds();
? ?console.log(datestart.getFullYear()+'-'+(datestart.getMonth()+1)+'-'+datestart.getDate()+' '+time);
? ?var glast=false;
? ?lineReader.eachLine(ffilter,{encoding:'binary'},function(fline,flast){
var fbuf=new Buffer(fline,'binary');
var fstr=iconv.decode(fbuf,'GBK')?
? ? var idxcount=0
? ? lineReader.eachLine(fReadName,{encoding:'binary'},function(line,last){
var buf=new Buffer(line,'binary');
var str=iconv.decode(buf,'GBK')?
? ? var strw=strfilter(str,fstr) //對比的函數,如有相同即返回
? ? fs.write(fd,strw,function(err){
? ? if(err){
? ? throw err
? ? }
? ? else{
? ? idxcount++
? ? }
? ? });
? ? if(last)
? ? ? ?{
? ? ? ? glast=true;
? ? ? ? if(idxcount===0){
? ? console.log(fstr+"無匹配記錄")
? ? ? ?}
? ? ? ?}?
? ? ?if(glast&&flast){
? ? var dateend=new Date();
? ? var endtime=dateend.getHours()+':'+dateend.getMinutes()+':'+dateend.getSeconds();
? ?console.log(dateend.getFullYear()+'-'+(dateend.getMonth()+1)+'-'+dateend.getDate()+' '+endtime);
? ?}
})
? ?
? ?
})
?
})
2019-03-25
這個 問題解決了嘛?