硬盘读写记录,记录有1G ,以TXT 保存,格式整齐,要求做可视化处理
本来打算OLE DB 连接的无奈数据量太大,只能采样分析了。
请教如何对数据采样。希望效率高点。
最好是直接操作文本,不用用数据库操作

解决方案 »

  1.   

    每次读入一小部分数据  显示在gridview里面
    采样?  隔几条 显示一条
      

  2.   

    额。。大概没说清楚我只想问采样,数据量太过庞大。1G 的记录文件。一条就一行, 可想而知有多少条了,就算直接readline 不做操作也要很久才能读完, 能不能直接跳到指定行读取数据
      

  3.   

    要不一次读出来加进数据库,要不就批量替换,在每行加点东西,弄成XML标准的格式,再以XML读取
      

  4.   

    1G不算大,当初我给机器人弄不列颠百科全书的时候都30G,一次载入内存.
    处理TXT是一件非常有趣的事.不过建议还是至少1333主频以上的内存+至少4核CPU来做.
    如果讲究效率,分段读取是不可取的,没有比直接载入内存再处理更快的了.
      

  5.   

    转存为XML再操作,.net操作XML速度快
      

  6.   

    我也是觉得xml可能会好一点儿,仅仅是一点儿。
      

  7.   

    不要转换XML 的。。直接分析原数据,1G转XML 也要不少时间的
      

  8.   

    1G的一个文件,打开都要不少时间。不能拆分成10m左右的文件放着吗?
    如果有类似id这样能唯一标示的属性,在分拆时把文件名改成能了解里面放的是几到几的,那么在读取时就快多了
      

  9.   

    OLE DB 连接用OleDbDataReader 。。载入用了2分钟。。不知道直接操作TXT 会不会快点。
      

  10.   

    只试过读取200多m的text文件,速度没有问题,1G的就不清楚了
      

  11.   

     那个速度没问题 食指 TXT 还是 OLE DB?还有数据库能不能每隔几条读取一条。。
      

  12.   

    1G也敢叫海量...txt文件分块多线程读就是了,又没什么难度...
      

  13.   

    其实1G大小文件用steam读取就行了,不用分块...
      

  14.   

    按你的要求,你如果想直接跳到指定的行,又不用数据库,又要快:
    那你在写这个txt的同时,也写一个索引文件,将4000行作为一组  索引文件使用二进制这一个块的行数,开始位置,结束位置。
    然后每次通过索引文件,找到你要跳转的行 在哪一个组。然后直接用STREAM从此位置往后读,分析\r\n 这样应该会快些。
      

  15.   

    按你的要求,你如果想直接跳到指定的行,又不用数据库,又要快:
    那你在写这个txt的同时,也写一个索引文件,将4000行作为一组 索引文件使用二进制记录各组的行数,开始位置,结束位置。
    然后每次通过索引文件,找到你要跳转的行 在哪一个组。然后直接用STREAM从此位置往后读,分析\r\n 这样应该会快些。