为了账号安全,请及时绑定邮箱和手机立即绑定

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

   }

})


   

   

})

 

})


正在回答

1 回答

这个 问题解决了嘛?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(二)
  • 参与学习       76755    人
  • 解答问题       226    个

本教程带你攻破 Nodejs,让 JavaScript流畅运行在服务器端

进入课程

使用node.js对两个文本文件逐行进行对比,然后把具有相同内容的行输出到第三个文件上,用什么方法比较好处理?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信