rheasam
asked on
Search for a log based on date
I need to search for a log based on the date and then look for a pattern within that log. For example on Oct 13th, I need to look for:
log.2008-10-13
How can i do that in vbscript?
log.2008-10-13
How can i do that in vbscript?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I, too, forgot about the watered-down nature of the VBScript run time environment. (no Format function)
ASKER
Ok, thanks I am checking on these and will let you know.
There are a few work-arounds for VBScript folks who find they need to use the Format() function often. The simplest is to use VB-classic to create an ActiveX DLL that returns the result of the VB Format() function. Then it is a simple matter of instantiating a variable of that type and use its one and only method.
Or you can write your own formatting function in code, something like the below....
It's obviously not very "smart", but it could be made to output in multiple formats....
Regards,
Rob.
It's obviously not very "smart", but it could be made to output in multiple formats....
Regards,
Rob.
MsgBox TimeNow(Now)
strDate = Left(TimeNow(Now), 4) & Mid(TimeNow(Now), 9, 2) & Mid(TimeNow(Now), 6, 2)
MsgBox strDate
Function TimeNow(dDateTime)
TimeNow = Year(Now) & "-" &_
Right("00" & Month(Now), 2) & "-" &_
Right("00" & Day(Now), 2) & "-" &_
Right("00" & Hour(Now), 2) & "-" &_
Right("00" & Minute(Now), 2) & "-" &_
Right("00" & Second(Now), 2)
End Function
ASKER
Can you give me the code to look for the particular pattern, the above seems to just check whether the log with date is present.
You could construct a pattern matching string to use with the LIKE operator
For Each objFile In objFSO.GetFolder(strFolder).Files
If LCase(objFile.Name) Like "Log.2008-10-13*" Then strFoundFile = objFile.Path
Next
ASKER
No what I meant is to look for a pattern within the file. So for example I found the file
Log.2008-10-13. Now I need to look for badfetch string within that file:
ex:
Log.2008-10-13. Now I need to look for badfetch string within that file:
ex:
@rheasam
You haven't given us any information about the contents or size or format of the file. I could give you an answer, but I'd rather give you a good answer.
You haven't given us any information about the contents or size or format of the file. I could give you an answer, but I'd rather give you a good answer.
ASKER
The file is a text file and will always have some content. The lines could like the following
Could not read the file: badfetch error 12:25 13 Oct 2008
Could not retrieve the audio:badtfetch error 12:26 13 Oct 2008
Whenever the badfetch comes I want to print the line and send it as a alert. I will generate a email with that text.
Could not read the file: badfetch error 12:25 13 Oct 2008
Could not retrieve the audio:badtfetch error 12:26 13 Oct 2008
Whenever the badfetch comes I want to print the line and send it as a alert. I will generate a email with that text.
Dim strLine As String
Open "filename" For Input As #1
Open "alertfilename" For Output As #2
Do Until EOF(#1)
Line Input #1, strLine
If strLine Like "*badfetch*" Then
Print #2, strLine
End If
Loop
Close
The above is VBA code, try this for VBScript.
Regards,
Rob.
Regards,
Rob.
strFolder = "C:\Logs"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
strYear = Year(Date)
strMonth = Right("0" & Month(Date), 2)
strDay = Right("0" & Day(Date), 2)
strLogName = "log." & strYear & "-" & strMonth & "-" & strDay
If objFSO.FileExists(strLogName) Then
MsgBox strLogName & " was not found in " & strFolder
Else
MsgBox "Found " & strLogName
Set objFile = objFSO.OpenTextFile(strLogName, intForReading, False)
While Not objFile.AtEndOfStream
strLine objFile.ReadLine
If InStr(strLine, "badfetch") > 0 Then
WScript.Echo strLine
End If
Wend
objFile.Close
Set objFile = Nothing
End If
MsgBox "Script has finished."
Oh, of course.....brain fart moment..... :-(
That's true aikimark, but the Format method does not exist in VBScript....
Rob.
Open in new window