Ускорение зацикливания текстового файла в VBS - PullRequest
0 голосов
/ 29 июля 2011

Добрый день,

У меня проблема с кодом, когда я зацикливаюсь на текстовом файле.Текстовый файл содержит около 10000 строк, поэтому я решил использовать функцию поиска instr, чтобы найти номер строки, найдя номер символа, в котором появляется «имя теста», а затем используя функцию mid и считая влево, чтобы найти номер строки.

например.

000004 ### 24503 ### Открыть учетную запись Web ISA single ### 2 ######### Пожалуйста, введите ваше имя. ### False ######### Mr ############ Калли #################################################################################################################################################################################################################################################################################################################################### 666 ###Imagenericpassword ### Ops ############################################################################################################################################## Cash ISA 2009/2010 ################################################################################################################################################################################################################################################

Таким образом, в этом случае он находит «Open Account Web ISA single» и считает влево, чтобы найти 000004. Так что это спасает меня от циклического перебора 10 000 строк.

Так что далее я разделил эту строку на массив, используя ### какразделитель, это приводит к множеству пустых «столбцов», так как они были пустыми, когда я конкатинировал данные из Excel.Это оставляет мне около 247 столбцов.Моя проблема в том, что я не хочу на самом деле перебирать 247 столбцов, так как многие из них содержат ... ну ничего.Есть ли для меня более быстрый способ сделать это?

Раньше я использовал Excel, но он слишком медленный.

1 Ответ

1 голос
/ 29 июля 2011

Вы можете удалить пустые столбцы:

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

Это результат для вашего примера:

000004 ### 24503 ### Открыть учетную запись Web ISA single ### 2 ### Пожалуйста, введите ваше имя. ### False ### Mr ### callie ### 666 ### Imagenericpassword ### Ops ### Cash ISA 2009/2010 ###

...