从多个文件中获取数据
现有多个文本文件(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的文件。--------------------编程问答-------------------- 我打算将所有的结果写到一个文件中 --------------------编程问答-------------------- 我打算将所有结果写到一个文件中 --------------------编程问答-------------------- 用多线程读,将文本文件全部读入xml,最后用LINQ或者sql语句distinct就ok了 --------------------编程问答-------------------- 我传给你两个示例文件,你能把完整的处理代码写给我么,急用!!!
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(新文件名, 数组);
--------------------编程问答-------------------- 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("");
//判断
}
--------------------编程问答-------------------- 我传给你两个示例文件,你能把完整的处理代码写给我么,急用!!!
补充:.NET技术 , C#