<?xml version="1.0" ?> <package> <!-- version 1.0 081022 --> <job id="SortUSD" prompt="no"> <?job error="false" debug="false" ?> <runtime> <description> (c) KAO akrutskikh@hotmail.ru version 1.0 - 081022 </description> <unnamed helpstring="file with list of links" name="FILENAME" required="true" many="false"/> </runtime> <script id="vb01" language="VBScript"> <![CDATA[ Function GetID(link) GetID = RegExpAddr(trim(link)) End Function Function FindOth(arrFileLines, startLine, cID) For m = startLine to UBound(arrFileLines,2) Step 1 nID = arrFileLines(1,m) if cID <> nID then FindOth = m Exit Function end if Next FindOth = -1 End Function Function RegExpAddr(strng) Dim regEx, Match, Matches, patrn ' Create variable. On Error Resume Next patrn = "^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)*([a-z0-9-]{1,128})\.+(?:com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)((?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3}))(?:/).*?" Set regEx = New RegExp ' Create a regular expression. regEx.Pattern = patrn ' Set pattern. regEx.IgnoreCase = True ' Set case insensitivity. regEx.Global = True ' Set global applicability. Set Matches = regEx.Execute(strng) ' Execute search. Set Match = Matches(0) RetStr = Match.SubMatches(0) & Match.SubMatches(1) RegExpAddr = RetStr End Function ]]> </script> <script id="StartSection" language="VBScript"> <![CDATA[ if(WScript.Arguments.Unnamed.length=0) then WScript.Arguments.ShowUsage() WScript.Quit() end if ReDim arrFileLines(1,0) i = 0 fn = WScript.Arguments.Unnamed(0) fo = fn & ".cpy" Set objFSO = CreateObject("Scripting.FileSystemObject") if objFSO.FileExists(fo) then objFSO.DeleteFile fo, true end if objFSO.MoveFile fn, fo Set objFile = objFSO.OpenTextFile(fo, 1, False, TristateUseDefault) Do Until objFile.AtEndOfStream Redim Preserve arrFileLines(1,i) ln = objFile.ReadLine arrFileLines(0,i) = ln arrFileLines(1,i) = GetID(ln) 'Wscript.Echo " !!! " & arrFileLines(0,i) i = i + 1 Loop objFile.Close Set objFile = objFSO.OpenTextFile(fn, 2,True,TristateUseDefault) objFile.WriteLine arrFileLines(0,LBound(arrFileLines,2)) ID = arrFileLines(1,LBound(arrFileLines,2)) For l = LBound(arrFileLines,2)+1 to UBound(arrFileLines,2) Step 1 nl = FindOth(arrFileLines, l, ID) if nl>=0 and nl<>l then ' trim string t = arrFileLines(0,l) arrFileLines(0,l) = arrFileLines(0,nl) arrFileLines(0,nl) = t t = arrFileLines(1,l) arrFileLines(1,l) = arrFileLines(1,nl) arrFileLines(1,nl) = t end if ID = arrFileLines(1,l) objFile.WriteLine arrFileLines(0,l) Next objFile.Close 'MsgBox(RegExpAddr("rapidshare.com/")) WScript.Quit() ]]> </script> </job> </package> |