C# 对txt文本行数据进行对比并批量操作

TXT1内容如下123456123甲1123456456甲2123456789甲3TXT2内容如下123456甲2123456甲3TXT3来自TXT2对TXT1的过滤最后... TXT1内容如下
123456 123 甲1
123456 456 甲2
123456 789 甲3
TXT2内容如下
123456 甲2
123456 甲3
TXT3来自TXT2对TXT1的过滤 最后结果如下
123456 甲2 456
123456 甲3 789
该怎么去读取txt1与txt2的内容 进行过滤换位
最后输出txt3?
展开
 我来答
376710727
2016-05-10 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1271万
展开全部

1 读取txt 

c#使用filestream读取text, 读出来是一行一行的,可以自行组成一个List<string>的

2 对比,

你这个其实就是list1和list2 的分行比较,每次比较一行字符串 看是不是符合你要的规律

 foreach(var line1 in list1) //line1 就是txt1中的某一行

{

     foreach(var line2 in list2)

     {

          if(line2 == line1){} //想怎么比较就怎么比较....

      }

3输出,

 2中你自己写好if之后,符合条件的line1和line2是可以记录下来  组成一个新的list3的,

还是使用filestream  一行一行的输出到txt3中就OK 了。

 public void Read(string path)  //读取txt
        {
            StreamReader sr = new StreamReader(path,Encoding.Default);
            String line;
            while ((line = sr.ReadLine()) != null) 
            {
                Console.WriteLine(line.ToString());
            }
        }
        
      public void Write(string path) //写TXT
        {
            FileStream fs = new FileStream(path, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            //开始写入
            sw.Write("Hello World!!!!");
            //清空缓冲区
            sw.Flush();
            //关闭流
            sw.Close();
            fs.Close();
        }
更多追问追答
追问
有没有完整代码。。 上面那个看过了 用不了= = 不知道问题出在哪。
追答
我刚运行过了,没有问题。
请你发出报错的截图,
代码都是自己写的,能给你的只是思路。
酒瓶里的蚊子
2016-05-10 · TA获得超过622个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:777万
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string str1, str2;
            string[] arr1 = new string[3];
            string[] arr2 = new string[2];
            StreamReader  sr1,sr2;

            sr1 = File.OpenText(@"D:\1.txt");
            while (!sr1.EndOfStream)
            {
                str1 = sr1.ReadLine();
                arr1 = str1.Split(' ');
                sr2 = File.OpenText(@"D:\2.txt");
                while (!sr2.EndOfStream)
                {
                    str2 = sr2.ReadLine();
                    arr2 = str2.Split(' ');
                    if ((arr1[0] == arr2[0]) && (arr1[2] == arr2[1]))
                    {
                        File.AppendAllText(@"D:\3.txt", str1 + "\r\n");
                    }
                }
                sr2.Close();
                sr2.Dispose();
            }
            sr1.Close();
            sr1.Dispose();
        }
    }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式