C# 更快地分割txt文件
我有一个我读入的CSV文件,我把它转换成一个TXT文件,写下每列逗号分隔的值。我希望程序也能够将TXT文件转换回CSV,因此我正在创建一个C# 更快地分割txt文件,c#,regex,string,C#,Regex,String,我有一个我读入的CSV文件,我把它转换成一个TXT文件,写下每列逗号分隔的值。我希望程序也能够将TXT文件转换回CSV,因此我正在创建一个TXTReader类。我在读取大型TXT文件时遇到问题。我第一次尝试使用String.Split: string fullText = File.ReadAllText(fileName); string[] values = fullText.Split(','); 这在一开始是可行的,但当出现带有逗号字符串的列时,会引起问题,使程序认为它是另一列,而它只
TXTReader
类。我在读取大型TXT文件时遇到问题。我第一次尝试使用String.Split
:
string fullText = File.ReadAllText(fileName);
string[] values = fullText.Split(',');
这在一开始是可行的,但当出现带有逗号字符串的列时,会引起问题,使程序认为它是另一列,而它只是一个字符串。我继续寻找解决方案,并找到了答案。这对小文件非常有效,但对我的31 MB TXT文件来说速度非常慢。然后我尝试了我自己的黑客方法,迭代全文
中的所有字符,并检查“\”
,因为所有字符串在TXT中都有引号,但这也需要很长时间(约10分钟)。
我也不能使用,因为我的字符串列值有时包含\n
,这会导致读者认为它是一个新行,而不是
那么,我是否必须接受读取31 MB TXT文件并将值拆分为列需要一段时间,还是有更有效的方法来执行此操作?有一个项目,据说csv读取/拆分速度比低内存使用率的正则表达式快15倍。如果要显示稍后提供数据。来源可用 您可以自定义许多参数(包括换行选项),因此我认为它足够智能,可以在值中处理您的
\n
,它可以明确地处理参数值中的逗号
有一个项目,据说在低内存使用率下,csv读取/拆分速度比正则表达式快15倍。如果您想稍后显示数据,甚至还支持数据绑定。源可用 您可以自定义许多参数(包括换行选项),因此我认为它足够智能,可以在值中处理您的
\n
,它可以明确地处理参数值中的逗号
一个简单的加速方法是使用RegexOptions.Compiled。其他方法包括,获取更快的regex查询(可能不太可能),使用线程。
TextFieldParser
处理所有这些-@AlexK。如问题中所述,我不能使用TextFieldParser
,因为它读取每行换行的值,并且我的字符串可以包含\n
。所以用另一个字符交换\n,解析,交换回?@AlexK.hmm,这听起来像是一个解决方案。但这意味着我不需要o将其替换为任何字符串中其他地方都不使用的字符,ASCII值会是多少?要加快速度,可以做的一件简单的事情是使用RegexOptions.Compiled。其他事情包括,获得更快的regex查询(可能不太可能),使用线程。TextFieldParser
处理所有这些-@AlexK。如问题中所述,我不能使用TextFieldParser
,因为它读取每行换行的值,并且我的字符串可以包含\n
。所以用另一个字符交换\n,解析,交换回?@AlexK.hmm,这听起来像是一个解决方案。但这意味着我不需要o将其与任何字符串中其他地方都未使用的字符交换,该ASCII值是多少?