2011-07-29 3 views
0

午後、vbs内のテキストファイルをループする速度が速く

私はテキストファイルをループしているところで私のコードに問題があります。テキストファイルには約10,000行があるので、 "test name"が現れる文字番号を見つけてmid関数を使い、行番号を見つけるために左に数えて行番号を見つけるためにinstr検索関数を使いました。

例えば、 #########

000004 ### 24503 ###口座開設のWeb ISAシングル### 2 #########あなたの最初の名前を入力してください。###偽氏########### callie #################### ########################## ########################## ########################## ########################## ########################## ################### 666 ### Imagenericpassword ### Ops #### ########################## ########################## ##############キャッシュISA 2009/2010 ############# ########################## ########################## ########################## ########################## ############

この場合、「Open Account Web ISA single」と表示され、000004を見つけるために残っていると見なされます。これにより、10,000行にわたってループすることがなくなります。

次に、この行を###を区切り文字として使用して配列を分割します。これは、Excelからデータをconcatinatedしたときに空だったので、空の "列"がたくさんあります。これにより、合計で約247の列が残されます。私の問題は、たくさんの列が含まれているので、実際には247列をループしたくないということです。これを行うためのより速い方法がありますか?

私はExcelを使用していましたが、あまりにも遅いです。

+1

すべてです上記の例の1つ長い行?ファイル内のすべての行が行番号で始まっていますか?特定の番号の行を1つだけ取得したいですか? – Morbo

答えて

1

あなたは空の列削除することができます。これはあなたの例のための結果である

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

を:

000004 ### 24503 ###口座開設のWeb ISAシングル### 2# ##あなたのファーストネームを入力してください### False ### Mr ### callie ### 666 ### Imagenericpassword ### Ops ###キャッシュISA 2009/2010 ###

関連する問題