【发布时间】:2013-06-10 14:50:09
【问题描述】:
我有数百个以空格分隔的文本文件,我想根据 RFC 4180 在 VB.NET 中将它们转换为 CSV 文件。这些文件的长度不同,但最多可以包含 200000 行,并且具有不同数量的列(最多 30)由多个“空格”分隔,这些“空格”也在 1 到 20 之间变化。文件包含一些我想删除的信息,例如第一列,我还想更改第二列的内容转换为有效的 Javascript 时间戳。这是其中一个文件的第一行的示例(请注意,大部分空格未显示)。
#时间顺序boil_q_1boil_q_2 chil_q1 chil_q2 loccool locheat qdomwat
0.000000000 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31529E-03 132.39 9799.3 0.0000
8.0000000000E-02 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31528E-03 132.11 9917.1 0.0000
0.1600000000 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31527E-03 131.98 10047.0.0000
0.2705515735 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31527E-03 131.97 10152.0.0000
0.2705515763 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31526E-03 131.97 10152.0.0000
0.3345515763 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31525E-03 131.97 10184.0.0000
0.3985515763 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31524E-03 131.98 10192.0.0000
0.5265515763 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31524E-03 131.98 10178.0.0000
0.7825515763 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31523E-03 131.99 10164.0.0000
0.7825515791 1.0000 4.18700E-09 0.0000 4.18700E-11 1.31522E-03 131.99 10164.0.0000
欢迎提出任何建议。
真诚的 最大
【问题讨论】:
-
欢迎来到 Stack Overflow。您能否向我们展示您目前处理此问题的尝试,以便我们知道如何提供帮助?
-
我想到了逐行阅读并使用 Dim split As String() = Text.Split(" ") Dim s As String For Each s In split If s.Trim() "" Then Console.WriteLine(s) End If Next s 但必须有更好的方法。
-
这可能是最简单的方法。在编写 CSV 文件时,您必须输出逗号并将字段值用双引号括起来。
-
因为你不知道会有多少空格,我想说你最好的选择是使用
Regex.Replace使用\s*的正则表达式和你的新分隔符 -,csv. -
听起来不错,从未听说过 Regex.Replace
标签: vb.net text space delimited