下午好,

我的代码在im遍历文本文件时遇到问题。文本文件大约有10,000行,所以我想出了使用instr搜索功能通过找到出现“测试名称”的字符号来找到行号,然后使用中点功能并向左计数来找到行号的方法。

例如。

000004 ### 24503 ### Open Account Web ISA single ### 2 ########请输入您的名字。### False ######### Mr #### ####### callie ######################################### ################################################ ################################################ ################################################ ################################################ ################################################ ################################ 666 ## Imagenericpassword ### Ops ######### ################################################ ################################################ ##########################现金ISA 2009/2010 ################## ################################################ ################################################ ################################################ ################################################ ################

因此,在这种情况下,它会找到“单一开放式帐户Web ISA”,然后再剩余数以找到000004。因此,这省去了10,000行的循环。

因此,接下来我使用###作为分隔符将此行拆分为一个数组,这会导致出现许多空的“列”,因为当我合并excel中的数据时它们是空的。总共剩下大约247列。我的问题是我不想真正遍历247列,因为其中很多包含...什么也没有。我有更快的方法吗?

我曾经使用过excel,但是速度太慢了。

最佳答案

您可以删除空列:

Set re = New RegExp
re.Pattern = "(###){2,}"
re.Global = True
withoutEmptyCols=re.Replace(input,"###")


这是您的示例的结果:


  000004 ### 24503 ### Open Account Web ISA single ### 2 ###请输入您的名字。### False ### Mr ### callie ### 666 ### Imagenericpassword ### Ops ###现金ISA 2009/2010 ###

10-08 15:57