在定义符号“|”后parsing文本文件

我有一个如下所示的文本文件:

442342 | 442342 | 213123 | 5345233 | 5432543 | 5 | 5435 | 345345 | 345345 | 345345等

我想parsing它,在每个第五个符号“|”之后input换行符 并使用|导入到Excel 作为分隔符。

所以输出将是Excel文件,每行5个单元,包含来自txt文件的数据。

我的想法是parsing它在Word中的macros或作为batch file,然后使用Excel的导入function,以获得它在Excel中。 不幸的是 – 在这两种情况下我都失败了。

任何想法如何做到这一点快速和有效?

这假定您的input数据是在一个长的文本string中:

Sub GetAndparse() Dim TextLine As String, I As Long, J As Long Close #1 Open "C:\TestFolder\TestFile.txt" For Input As #1 Line Input #1, TextLine ary = Split(TextLine, "|") I = 1 J = 1 For Each a In ary Cells(I, J).Value = a J = J + 1 If J = 6 Then J = 1 I = I + 1 End If Next a Close #1 End Sub 

将文本文件转换为多行,每行5列可以使用名为REPL.BAT的混合JScript /批处理实用程序轻松完成。 它执行stdin的正则expression式查找/replace,并将结果写入标准输出。 这是一个纯粹的脚本,将从XP以后的任何现代Windows机器上本机运行。

假设你的文本只包含一行:

 <test.txt repl "((.*?\|){4}.*?)\|" "$1\r\n" x >new.txt 

如果你的文本文件已经包含多行,那么你可以再使用一个REPL去除换行符,并用|replace它们 。

 <test.txt repl "\|?\r?\n" "|" m | repl "((.*?\|){4}.*?)\|" "$1\r\n" x >new.txt