WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

LogParser

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Example for using LogParser COM Interface

 Keywords: LogParser MSUtil.LogQuery

;----------------------------------------------------------------------------------------------------------------------
; Example for using LogParser COM interface.
;
; There is a disk related database of about 100 MB size containing 2806 textfiles.
; The content of each textfile has to be sorted for following purposes.
; The Microsoft LogParser utility can do this in a quite effective manner.
;
; This example script needs a real world database which can be downloaded from
;
; http://www.sendspace.com/file/f3ehly
;
; as a 7-zip file of 16 MB size while a limited time of 90 days from now.
; Note: This database is already sorted, but it does not matter for the example.
;
; Detlev Dalitz.20090326.
;----------------------------------------------------------------------------------------------------------------------
sTimeStart = TimeYmdHms ()

@B = "\"
@C = ","
@S = "/"
@P1 = "{1}"
@P2 = "{2}"

sTarRootFolder = "K:\MyIndexBase\" ; Change folderpath to your needs.
iResult = DirChange (sTarRootFolder)

sFreedbDate = "20090301" ; Date of current database.

sDBGenresList = "blues,classical,country,data,folk,jazz,misc,newage,reggae,rock,soundtrack,-"

sMsgTitle = "Example for using LogParser COM interface"
sMsgText  = "Sorting disk files ..."
WinPlaceSet (@NORMAL, "", "100 150 900 400")
BoxOpen (sMsgTitle, sMsgText)

; Use MS Log Parser for sorting. Runs 2x faster than DOS Sort.
oLogQuery    = ObjectCreate ("MSUtil.LogQuery")
oLogQueryIn  = ObjectCreate ("MSUtil.LogQuery.TextLineInputFormat")
oLogQueryOut = ObjectCreate ("MSUtil.LogQuery.NativeOutputFormat")
oLogQueryOut.headers = @FALSE
sLogQueryStrMask = StrCat ("SELECT Text INTO '", @P1, "' FROM '", @P1, "' ORDER BY Text ASC")

iDBGenresCount = ItemCount (sDBGenresList, @C)

sMsgTextMask = StrCat (sMsgText, @LF, "Folder Nr.: ", iDBGenresCount, @S, @P1, @LF, "Folder Name: ", @P2)

For iDBGenre = 1 To iDBGenresCount
   sDBGenre = ItemExtract (iDBGenre, sDBGenresList, @C)

   sMsgText = StrReplace (StrReplace (sMsgTextMask, @P1, iDBGenre), @P2, sDBGenre)
   BoxText (sMsgText)

   sDBGenreFileMask = StrCat (sFreedbDate, @B, sDBGenre, @B, "*.txt")
   sDBGenreFileList = FileItemize (sDBGenreFileMask)

   While (sDBGenreFileList != "")
      sDBGenreFile = ItemExtract (1, sDBGenreFileList, @TAB)
      sDBGenreFileList = ItemRemove (1, sDBGenreFileList, @TAB)
      sDBGenreFile = StrReplace (sDBGenreFileMask, "*.txt", sDBGenreFile)
      iResult = oLogQuery.ExecuteBatch (StrReplace (sLogQueryStrMask, @P1, sDBGenreFile), oLogQueryIn, oLogQueryOut)
      Terminate (iResult==1, "Terminate: Sorting", StrCat ("Error while Log Parser Sort.", @LF, sDBGenreFile))
   EndWhile

   sMsgText = StrReplace (StrReplace (sMsgTextMask, @P1, iDBGenre), @P2, sDBGenre)
   BoxText (sMsgText)
Next

oLogQueryIn  = 0
oLogQueryOut = 0
oLogQuery    = 0

sMsgText = StrCat (sMsgText, @LF, "Done.")
BoxText (sMsgText)

sTimeStop = TimeYmdHms ()
sTimeDiff = TimeDiff (sTimeStop, sTimeStart)

sMsgTitle = "Sorting ... done."
sMsgText  = StrCat ("Start: ", sTimeStart, @LF, "Stop: ", sTimeStop, @LF, "Diff: ", sTimeDiff, @LF, @LF, "Ready.")
Message (sMsgTitle, sMsgText)

BoxShut ()
Exit
;----------------------------------------------------------------------------------------------------------------------


Article ID:   W18082
Filename:   Example for using LogParser COM Interface.txt
File Created: 2009:03:26:08:35:44
Last Updated: 2009:03:26:08:35:44