使用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);
}
})
})
})