当前位置:编程学习 > C#/ASP.NET >>

从多个文件中获取数据

现有多个文本文件(1000个以上),每个文件有多行,每行有两列,第一列为数字,第二列为字符串(其中有相同的)。
现在我想获得所有字符串相同的项的前面的数字。对每个文件中所有不同的字符串都进行这样的处理。并最终汇总到一个文件中去,但是对每组数据应该保存它来自的文件名和数据项的第二项内容。 --------------------编程问答-------------------- 该怎么读就怎么读吗,就两列,解析很容易,1000多个文件,大不了搞几个线程,每个线程负责处理一部分文件 --------------------编程问答-------------------- 谢谢你,能否提供相关代码,小弟是初学。 --------------------编程问答-------------------- 把所有文件内容写到内在流。再转化为字符串分析!统一处理 --------------------编程问答-------------------- 关键是还要所在文件的文件名信息啊 --------------------编程问答-------------------- 所有的文件是不是保存到一个文件夹下面呢?
或者是有特殊的命名方式呢? --------------------编程问答-------------------- 你那两列在文本里是用什么分的,空格还是tab,就用那个分割,
readline,存在xml里,然后用linq,传这2个参数,distinct()一下,就搞定了。 --------------------编程问答-------------------- 文件太多用多线程读,将文本文件全部读入数据库或dataset或xml,最后用LINQ或者sql语句distinct就ok了 --------------------编程问答-------------------- http://topic.csdn.net/u/20070613/14/9e5bfb6b-fbcd-4178-8a29-113bbcc70e7e.html

参考 --------------------编程问答-------------------- 1000多个文件,每个就几行,不用多线程,全读到内存里也没什么问题。

//用Directory.GetFiles方法取得该目录下指定Pattern的文件。
var files = Directory.GetFiles(@"D:\temp", "*.txt");
//遍历所有文件
foreach(var f in files)
{
    //打开文件,读入所有行
    var lines = File.ReadAllLines(f);
    //遍历所有行
    foreach(var l in lines)
    {
        // 这里需要分割每行的数据,比如用逗号分割
        var strs = l.Split(new[] {','});
        // 加入你自己的判断逻辑...
    }

// ...
File.WriteAllLines(新文件名, 数组);
--------------------编程问答-------------------- 我打算将所有的结果写到一个文件中
引用 4 楼 wya115 的回复:
关键是还要所在文件的文件名信息啊
--------------------编程问答-------------------- 我打算将所有结果写到一个文件中
引用 5 楼 yangheation 的回复:
所有的文件是不是保存到一个文件夹下面呢?
或者是有特殊的命名方式呢?
--------------------编程问答-------------------- 用多线程读,将文本文件全部读入xml,最后用LINQ或者sql语句distinct就ok了 --------------------编程问答-------------------- 我传给你两个示例文件,你能把完整的处理代码写给我么,急用!!!
引用 9 楼 fangxinggood 的回复:
1000多个文件,每个就几行,不用多线程,全读到内存里也没什么问题。

C# code
//用Directory.GetFiles方法取得该目录下指定Pattern的文件。
var files = Directory.GetFiles(@"D:\temp", "*.txt");
//遍历所有文件
foreach(var f in files)
{
    //打开文件,读入所有行
    ……
--------------------编程问答-------------------- Directory.GetFiles(Application.StartupPath + @"\a\","*.txt").ToList().ForEach(
        //Path => 操作              
            );
System.IO.DirectoryInfo dir= new DirectoryInfo("");
 
foreach (System.IO.FileInfo item in dir.GetFiles("*.txt", SearchOption.AllDirectories ))
{
 string[] line =File.ReadAllLines("");
//判断
}

 
 
--------------------编程问答-------------------- 我传给你两个示例文件,你能把完整的处理代码写给我么,急用!!!
引用 14 楼 wuyq11 的回复:
Directory.GetFiles(Application.StartupPath + @"\a\","*.txt").ToList().ForEach(
        //Path => 操作              
            );
System.IO.DirectoryInfo dir= new DirectoryInfo("");
 
foreach (Sy……
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,