Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- NumberStrokiInit() ' всегда в самом начале скрипта
- MsgBox NumberStroki()
- MsgBox NumberStroki()
- If NumberStroki = 6 Then MsgBox "Line = " & NumberStroki
- MsgBox NumberStroki()
- MsgBox NumberStroki()
- Sub NumberStrokiInit()
- Dim strCode, objReplace, lngLine, arrCode, strCmdLn, strArg
- With CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.ScriptFullName, 1)
- strCode = .ReadAll
- .Close
- End With
- ExecuteGlobal "Function Number" & "Stroki(n): Number" & "Stroki = n: End Function"
- Execute "Class clsReplace: Public lngLine, bMod: Public Default Function fReplace(strMatch, strSubMatch, lngPos, strSource): On Error Resume Next: If Eval(strSubMatch) <> lngLine Then fReplace = Replace(strMatch, strSubMatch, ""NumberStroki("" & lngLine & "")""): bMod = True Else fReplace = strMatch: End If: End Function: End Class"
- Set objReplace = New clsReplace
- objReplace.bMod = False
- arrCode = Split(strCode, vbCrLf)
- With New RegExp
- .Pattern = "\b(Number" & "Stroki\ {0,}(?:|\( {0,}(?:|""[\w ]{0,}""|[A-Za-z_]{1,}\w{0,}|\d{1,}) {0,}\)))\ {0,}(?:[><+*\\/\-\^':=&\r\n]|$)"
- .Global = True
- .IgnoreCase = True
- For lngLine = 0 To Ubound(arrCode)
- objReplace.lngLine = lngLine + 1
- arrCode(lngLine) = .Replace(arrCode(lngLine), objReplace)
- Next
- End With
- strCode = Join(arrCode, vbCrLf)
- If objReplace.bMod Then
- With CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.ScriptFullName, 2, True)
- .Write strCode
- .Close
- End With
- strCmdLn = WScript.FullName & " """ & WScript.ScriptFullName & """"
- For Each strArg In WScript.Arguments
- strCmdLn = strCmdLn & " """ & strArg & """"
- Next
- CreateObject("WScript.Shell").Run strCmdLn
- WScript.Quit
- End If
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement