'
option explicit
'
' vbs - filtra un file di testo utilizzando espressioni regolari
'
dim objArgs, Filename, cartellalavori, Title
'
Set objArgs = WScript.Arguments 'Vedo se ci sono degli argomenti passati allo script
if objargs.count=0 then 'altrimenti mostro come si usa il programma
msgbox "Trascinare un file sul programma per visualizzarlo", vbinformation+vbokonly, Title
wscript.quit
end if
'
Filename=wscript.arguments(0)
'
cartellalavori = fcartellalavori(Filename)
'
dim dblog, slog
dblog = cartellalavori & "esito-1.txt"
call cancellafile(dblog)
'
dim criterioricerca
criterioricerca = "[ ]{3,}" ' solo righe con tre spazi consecutivi
' criterioricerca = "^\w{3}\s+\w*"
' criterioricerca = "^\w+\s\w+"
'
call leggifile(FileName)
'
FileName = dblog
dblog = cartellalavori & "esito-2.txt"
call cancellafile(dblog)
criterioricerca = "^\w+\s\w+"
call leggifile(FileName)
'
'
' ===
'
sub leggifile(pFileName)
dim objFSO, objFile, text, txtStream
'
Set objFSO = CreateObject("Scripting.FileSystemObject")
'
If objFSO.FileExists(pFilename) = true Then
Set txtStream = objFSO.OpenTextFile(pFilename) ' Apre file di testo.
Do While Not (txtStream.atEndOfStream)
Text = txtStream.ReadLine 'legge una riga
'
call TestRegExp(criterioricerca, text)
'
Loop
End If
'
'
end sub
'
' =====
'
function fcartellalavori(pfile) ' determina la cartella di origine del file
dim objFSO, objFile
'
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(pfile)
'
fcartellalavori = objFSO.GetParentFolderName(objFile) & "\"
'
'
end function
'
' ========= ===========
'
Sub TestRegExp(sPattern, ptesto)
'
dim sSearch
sSearch = ptesto
'
Dim oRE, oMatches, oMatch
Set oRE = CreateObject("VBScript.RegExp")
oRE.Global = True
oRE.IgnoreCase = True
oRE.Pattern = sPattern
if oRe.Test(sSearch) = true then
Set oMatches = oRE.Execute(sSearch)
For Each oMatch In oMatches
' msgbox oMatch.value
' stesto = stesto & oMatch.FirstIndex & " : " & oMatch.Length & " : " & oMatch.value & vbcrlf
slog = ptesto
'
call ScriviFileJollyAppend(dblog, ptesto)
Next
end if
'
'
End Sub
'
' =======
'
sub cancellafile(pfile)
dim fs
Set fs=CreateObject("Scripting.FileSystemObject")
if fs.FileExists(pfile) then
fs.DeleteFile(pfile)
end if
set fs=nothing
end sub
'
' ==================
'
Sub ScriviFileJollyAppend(pNomeArchivio, pcosascrivere)
dim fso, rifefile
Set fso=CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(pNomeArchivio)) Then
'msg = filespec & " esiste."
Set rifefile = fso.OpenTextFile(pNomeArchivio, 8)
Else
'msg = filespec & " Non esiste."
Set rifefile = fso.CreateTextFile(pNomeArchivio, TRUE)
End If
rifefile.WriteLine(pcosascrivere)
rifefile.Close
set rifefile = Nothing
End Sub
'
' =========
'
Nessun commento:
Posta un commento