Извлечение необходимой информации из текстового файла - VB
Формулировка задачи:
Здравствуйте. Есть файл 1.txt, например, со следующим содержанием:
El one 5.22% (6)
El two 2.61 %(3)
two 67.83 % (78)
t> one 15.38% (12)
El > two 34.62 % (27)
El t> one 19.23 % (15)
нужно получить файл 2.txt со следующим содержанием:
one_6
two_3
two_78
one_12
two_27
one_15
Т.е. есть определенный набор ключевых слов (one, two, ...), необходимо в каждой строке найти одно из ключевых слов (в строке может быть только одно), удалить все символы и пробелы до этого слова и, после этого слова, кроме чисел в скобках.
Заранее всем огромное спасибо.
Решение задачи: «Извлечение необходимой информации из текстового файла»
textual
Листинг программы
- Option Explicit
- Dim fso, ext, extp, arg, infile, outfile, re, mt
- Set re = CreateObject("vbscript.regexp")
- re.Pattern = "(one|two|four).*\((\d+)\)" 'в первых скобках - перечень ключевых слов
- re.ignorecase = True
- If WScript.Arguments.Count = 0 Then
- MsgBox "Этот скрипт извлекает из каждой строки файла ключевое слово и число." & vbLf & vbLf & _
- "Использование:" & vbLf & _
- WScript.scriptname & " ИмяФайла1 ИмяФайла2 ..." & vbLf & _
- "или выделите один или несколько файлов в Проводнике и перетащите их на значок скрипта."
- WScript.Quit
- End If
- Set fso = CreateObject("scripting.filesystemobject")
- For Each arg In WScript.Arguments
- Set infile = fso.opentextfile(arg)
- extp = InStrRev(arg, ".")
- Set outfile = fso.createtextfile(Left(arg, extp - 1) & "_1" & Mid(arg, extp))
- While Not infile.atendofstream
- Set mt = re.Execute(infile.readline)
- If mt.Count Then outfile.writeline mt(0).submatches(0) & "_" & mt(0).submatches(1)
- Wend
- Next
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д