快速拆分txt文件

时间:2015-08-03 10:49:36

标签: c# regex string

我读了一个CSV文件,然后通过写出每列分隔的逗号值将其转换为TXT文件。我希望程序也能够将TXT文件转换回CSV,这样我就可以创建TXTReader类了。我在阅读大型TXT文件时遇到问题。我首先使用String.Split尝试了它:

string fullText = File.ReadAllText(fileName);
string[] values = fullText.Split(',');

这首先起作用,但是当带有逗号的字符串的列出现时,它开始引起问题,使程序认为它是另一个列,而它只是一个字符串。我继续寻找解决方案并找到了https://stackoverflow.com/a/3147901/1870760。这适用于小文件,但我的31 MB TXT文件非常慢。然后我通过遍历fullText中的所有字符并检查"\""来尝试我自己的hacky方式,因为所有字符串都在TXT中包含了引号,但这也需要很长时间(~10)分钟)。 我也无法使用https://stackoverflow.com/a/3148691/1870760,因为我的字符串列值有时会包含\n,这会让读者认为它是一个新行,但它不是。

那么,我是否必须接受它并且需要一段时间才能读取31 MB的TXT文件并将值拆分成列或者是否有更有效的方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

据说,与低内存使用率的正则表达式相比,csv读取/拆分速度快15倍。如果您想稍后显示数据,则支持数据绑定。资料来源。

您可以自定义许多参数(包括换行选项),因此我假设它足够聪明以处理您的\n值,它会在参数值中处理逗号。

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader