Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


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

Предположим, что лог-файл находится в «c:\0001\0001.txt» и имеет кодировку ANSI. Тогда извлечь время (опять же, поскольку Вы не указали, — по моим предположениям, что именно эти символы — время) последнего совпавшего события можно, например, так:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForReading = 1


Dim objRegExp
Dim objMatch

Dim strLine
Dim strTrueLine
Dim strSubMatch


Set objRegExp = WScript.CreateObject("VBScript.RegExp")

objRegExp.Pattern = "\[\d{8}:(\d{6}.\d{2})\]:нужное событие"

With WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\0001\0001.txt", ForReading)
	Do Until .AtEndOfStream
		strLine = .ReadLine()
		
		If objRegExp.Test(strLine) Then
			strTrueLine = strLine
		End If
	Loop
	
	.Close
End With

For Each objMatch In objRegExp.Execute(strTrueLine)
	For Each strSubMatch In objMatch.SubMatches
		WScript.Echo strSubMatch
	Next
Next

Set objRegExp = Nothing

WScript.Quit 0

Поскольку Вы не указали примерный размер лог-файла, чтение и разбор файла в примере производится не целиком, а построчно.

P.S.
Возможно, Вам покажется более удобным в данном случае пользовать LogParser посредством Automation, або непосредственно как утилиту командной строки:
vbscript: работаем с утилитой LogParser от Microsoft
vbscript: утилита LogParser от Microsoft, COM-интерфейс

Последний раз редактировалось Iska, 07-01-2011 в 22:12.


Отправлено: 20:23, 07-01-2011 | #2