Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 3
VBS

Формирование файла из имеющихся в лог-файлах строк, содержащих определённую подстроку

26.05.2016, 11:45. Показов 1517. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня, форумчане
Помогите, пожалуйста, VBS не знаю совсем
Задача следующая
В папке лежит много тяжелых логов (файлов 500 по 300-500 Мб). Требуется сформировать файл в который войдут строки из этих файлов, содержащие "view_doc.html". Такие строки урезать до символов - - - - -

С помощью форума и всемогущего гугла меня хватило вот на это:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim objFS, oFile
Set objFS = CreateObject("Scripting.FileSystemObject")
For Each oFile in objFS.GetFolder("c:\123").Files
    CorrectText oFile.Path
Next
Set objFS = Nothing: set oFile = nothing
 
 
Sub CorrectText(strPath)
Dim objFile, arrTemp
    Set objFile = objFS.OpenTextFile(strPath, 1)
    arrTemp = Split(objFile.ReadAll, vbNewLine)
    objFile.Close
    For i = 0 To UBound(arrTemp)
        cpos = InStr(UCase(arrTemp(i)), "- - - - -")
 
        If InStr(1, arrTemp(i), "view_doc.html", vbTextCompare) > 0 Then arrTemp(i) = Mid(arrTemp(i), 1, cpos + Len("- - - - -") - 10) Else arrTemp(i)=""
    Next
    Set objFile = objFS.CreateTextFile(strPath, True)
    objFile.Write Join(arrTemp, vbNewLine)
    objFile.Close
    Set objFile = Nothing
End Sub
Проблемы две - не знаю как избавиться от пустых строк и как формировать файл с результатами, а не сохранять в тех же.
Очень надеюсь на вашу помощь
Не исключено, что я неверно выбрал инструмент, винить прошу гугла
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2016, 11:45
Ответы с готовыми решениями:

Вывод строк файла, содержащих заданную подстроку
Привет всем. Недавно начал изучать perl , из хорошо знающий языков только паскаль. Нужна такая программа чтобы она читала файл и искала в...

Получение строк, содержащих подстроку, из ОГРОМНОГО csv-файла
Как получить все строки, содержащие подстроку, из ОГРОМНОГО csv-файла?

Ввод массива строк и поиск среди них строк, содержащих заданную подстроку
Необходимо сделать вывод каждой строки, содержащей подстроку, а не только первой using System; using System.Collections.Generic; ...

4
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
26.05.2016, 12:07
попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim objFS, oFile
Set objFS = CreateObject("Scripting.FileSystemObject")
For Each oFile in objFS.GetFolder("c:\123").Files
    CorrectText oFile.Path
Next
Set objFS = Nothing: set oFile = nothing
 
 
Sub CorrectText(strPath)
Dim objFile, arrTemp
    Set objFile = objFS.OpenTextFile(strPath, 1)
    arrTemp = Split(objFile.ReadAll, vbNewLine)
    objFile.Close
    For i = 0 To UBound(arrTemp)
        cpos = InStr(UCase(arrTemp(i)), "- - - - -")
 
        If InStr(1, arrTemp(i), "view_doc.html", vbTextCompare) > 0 Then arrTemp(i) = Mid(arrTemp(i), 1, cpos + Len("- - - - -") - 10) Else arrTemp(i)=""
    Next
    Set objFile = objFS.CreateTextFile(strPath & "new", True)
    if isarray(arrTemp) then
        for i=0 to Ubound(arrTemp)
            if arrTemp(i) <> "" then : arrTemp(i) : end if
        next
    end if
    objFile.Close
    Set objFile = Nothing
End Sub
Добавлено через 7 минут
прошу прощения, имя создаваемого файла лучше так формировать:
Visual Basic
1
fso.GetParentFolderName(strPath) & "\new.txt"
0
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 3
26.05.2016, 12:12  [ТС]
tisha_, ругается на строку 22,
Несоответствие типа: 'arrTemp'
0
61 / 61 / 36
Регистрация: 16.09.2015
Сообщений: 296
26.05.2016, 12:30
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Visual Basic
1
if arrTemp(i) <> "" then : objFile.WriteLine arrTemp(i) : end if
замените в 22 строке
1
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 3
26.05.2016, 12:41  [ТС]
Огромное спасибо! Заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2016, 12:41
Помогаю со студенческими работами здесь

Поиск в файлах строк и дальнейшее использование найденных строк и имён и дат изменения содержащих их файлов
Дан каталог, нужно в нём и во всех его подкаталогах найти файлы *.log, содержащие текст в любой строке с прописной или заглавной...

Реализовать вывод всех строк, содержащих заданную подстроку
Использовать контейнер ArrayList для создания связного списка строк. Реализовать удаление всех строк, содержащих заданную подстроку. ...

Динамические структуры. Найти количество строк, содержащих данную подстроку
дана последовательность строк. найти количество строк, содержащих данную подстроку. перед каждой такой строкой вставить двоеточие. удалить...

Получить номера всех строк в последовательность, содержащих указанную подстроку
Дано последовательность стрингов разной длины. Получить номера всех рядков, что содержат как фрагмент первый рядок. В результате получить...

Вывод количества строк в файлах, содержащих заданные строки поиска
Создайте командный файл, выводящий количество строк в файлах, содержащие за- данные строки поиска (с помощью команды find с параметром...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru