2009-09-26 77 views
0

想知道是否有人有处理制表符分隔的文本文件的最喜欢的方法/有用的库?这个文件平均有30000-50000行。只需要读取每行并将其放入数据库。但是,我需要临时存储所有的数据,原因是如果持有数据的表达到1,000,000行以上,我需要创建一个新表并将数据放在那里。代码将在Windows服务中运行,所以我不担心处理时间。阅读和处理文本文件的最佳方式

思考只是做一个标准while(sr.ReadLine())...任何建议?

干杯,

肖恩。

+0

为了记录,如果这是唯一原因,则不需要将它全部加载到内存中。随着您处理已处理多少条记录,您可以保持一个总计。 – 2009-09-26 10:19:36

+0

那么每次上传数据时都会分配一个批号,所以如果最新批次加上当前表总数> 1,000,000,我想创建一个新表并将数据放在那里,保持批次在一起,所以当我来使用前端数据,我只需要从一个表中选择... – seanxe 2009-09-26 10:22:29

+0

因为其中一个答案被我的意见删除:一个简单的sr.ReadLine()不会削减它,因为可以是双引号的字段。当它们是时,它们可以包含特殊字符,如分隔符本身或换行符。所以阅读换行符是可以完成的,但只要注意阅读一个换行符并不意味着你会得到整行。 – Toad 2009-09-26 11:31:46

回答

1

This library非常灵活和快速。我从不厌烦推荐它。默认为','作为分隔符,但您可以轻松将其更改为'\ t'。

+0

分隔符作为参数在这个库中给出,所以这是一个非问题 – Toad 2009-09-26 10:36:09

+1

这就是我的意思是“轻松更改”:) – 2009-09-26 10:38:16

0

我怀疑“其掷入数据库”将采取幅度至少1个数量超过读线入缓冲区,所以你可以预扫描的数据只是计算的行数(不解析它们)。然后制定数据库决策。然后重新读取做实际工作的数据。幸运的是,操作系统将缓存文件,以便读取速度更快。