Function IStr(item)
if (IsNumeric(Item)) then
iStr = CInt(Item)
else
iStr = Left(Item,Len(item) -1)
end if
end Function
function iif(psdStr, trueStr, falseStr)
if psdStr then
iif = trueStr
else
iif = falseStr
end if
end function
set objFSO = CreateObject("Scripting.FileSystemObject")
set objPStatFile = objFSO.OpenTextFile("D:\My Mirc Client\Test\pstats.txt", 1, false)
strPStatFile = objPStatFile.ReadAll
objPStatFile.close
arrPStat = Split(strPStatFile,vbLf)
set rOBJ = New RegExp
rOBJ.IgnoreCase = True
rOBJ.Global = True
rOBJ.Pattern = "^rank (\d+) char ([^\x20]+) network ([^\x20]+) userhost ([^\x20]+) level (\d+) created (\d+) lastlogin (\d+) online (0|1) sex (?:(?:(m)ale)|(?:(f)emale)|(?:(n)ot set)) class \{([^\}]+)\} ttl (\d+) regentm (\d+) challengetm (\d+) slaytm (\d+) idled (\d+) x_pos (\d+) y_pos (\d+) amulet (\d+[a-z]?) charm (\d+[a-z]?) helm (\d+[a-z]?) boots (\d+[a-z]?) gloves (\d+[a-z]?) _
ring (\d+[a-z]?) leggings (\d+[a-z]?) shield (\d+[a-z]?) tunic (\d+[a-z]?) weapon (\d+[a-z]?) align ([neg]) alignchanged (0|1) powerpots (\d+) luckpots (\d+) fights ([0-5]) bets ([0-5]) bwon (\d+) blost (\d+) badd (\d+) bminus (\d+) hero (0|1) hlevel (\d) engineer (0|1) englevel (\d) gold (-?\d+) pen_mesg (\d+) pen_nick (\d+) pen_part (\d+) pen_kick (\d+) pen_quit (\d+) pen_quest (\d+) pen_logout (\d+)$"
dim mOBJ
set objFILE = objFSO.CreateTextFile("D:\My Mirc Client\Test\pstats2.txt")
For Each strPStat in arrPstat
if (right(strPstat,1) = vbCr) then strPstat = left(strPstat,len(strPstat) -1)
set mOBJ = rOBJ.Execute(strPstat)
If (mOBJ.Count > 0) then
GEND = iif(IsNull(mOBJ(0).submatches(8)),"M",iif(IsNull(mOBJ(0).submatches(9)),"F","N"))
PSUM = CInt(IStr(mOBJ(0).submatches(19))) + CInt(IStr(mOBJ(0).submatches(20))) + CInt(IStr(mOBJ(0).submatches(21))) + CInt(IStr(mOBJ(0).submatches(22))) + CInt(IStr(mOBJ(0).submatches(23))) + CInt(IStr(mOBJ(0).submatches(24))) + CInt(IStr(mOBJ(0).submatches(25))) + CInt(IStr(mOBJ(0).submatches(26))) + CInt(IStr(mOBJ(0).submatches(27))) + CInt(IStr(mOBJ(0).submatches(28)))
AMOD = iif(mOBJ(0).submatches(29) = "e","0.9",iif(mOBJ(0).submatches(29) = "g","1.1","1.0"))
HMOD = 1.0 + CDBL(mOBJ(0).submatches(39)) * (0.02 + CDbl(mOBJ(0).submatches(40)) * 0.01)
MSUM = Fix(CDbl(PSUM) * CDbl(AMOD) * CDbl(HMOD))
TFIGHTS = CInt(mOBJ(0).submatches(35)) + CInt(mOBJ(0).submatches(36))
if (TFIGHTS = "0") then
FWPR = 0.0
FLPR = 0.0
else
FWPR = round(CDBL(mOBJ(0).submatches(35)) / CDbl(TFIGHTS) * 100,1)
FLPR = round(CDBl(mOBJ(0).submatches(36)) / CDbl(TFIGHTS) * 100,1)
end if
if (mOBJ(0).SubMatches(35) = "0" or mOBJ(0).SubMatches(36) = "0") then
FRAT = "0.0"
else
FRAT = round(CDbl(mOBJ(0).submatches(35)) / CDbl(mOBJ(0).submatches(36)),2)
end if
EMOD = 1.0 + CDbl(mOBJ(0).submatches(41)) * (.02 + CInt(mOBJ(0).submatches(42)) * .01)
TPEN = CLng(mObj(0).submatches(44)) + CLng(mObj(0).submatches(45)) + CLng(mObj(0).submatches(46)) + CLng(mObj(0).submatches(47)) + CLng(mObj(0).submatches(48)) + CLng(mObj(0).submatches(49)) + CLng(mObj(0).submatches(50))
objfile.writeline(mOBJ(0).submatches(0) & "" & mOBJ(0).submatches(1) & "" & mOBJ(0).submatches(2) & "" & mOBJ(0).submatches(3) & "" & mOBJ(0).submatches(4) & "" & mOBJ(0).submatches(5) & "" & mOBJ(0).submatches(6) & "" & mOBJ(0).submatches(7) & "" & GEND & "" & mOBJ(0).submatches(11) & "" & mOBJ(0).submatches(12) & "" & _
mOBJ(0).submatches(13) & "" & mOBJ(0).submatches(14) & "" & mOBJ(0).submatches(15) & "" & mOBJ(0).submatches(16) & "" & mOBJ(0).submatches(17) & "" & mOBJ(0).submatches(18) & "" & PSUM & "" & MSUM & "" & mOBJ(0).submatches(19) & "" & mOBJ(0).submatches(20) & "" & mOBJ(0).submatches(21) & "" & _
mOBJ(0).submatches(22) & "" & mOBJ(0).submatches(23) & "" & mOBJ(0).submatches(24) & "" & mOBJ(0).submatches(25) & "" & mOBJ(0).submatches(26) & "" & mOBJ(0).submatches(27) & "" & mOBJ(0).submatches(28) & "" & mOBJ(0).submatches(29) & "" & mOBJ(0).submatches(30) & "" & AMOD & "" & mOBJ(0).submatches(31) & "" & _
mOBJ(0).submatches(32) & "" & mOBJ(0).submatches(33) & "" & mOBJ(0).submatches(34) & "" & TFIGHTS & "" & mOBJ(0).submatches(35) & "" & FWPR & "" & mOBJ(0).submatches(36) & "" & FLPR & "" & FRAT & "" & mOBJ(0).submatches(37) & "" & mOBJ(0).submatches(38) & "" & mOBJ(0).submatches(39) & "" & _
mOBJ(0).submatches(40) & "" & HMOD & "" & mOBJ(0).submatches(41) & "" & mOBJ(0).submatches(42) & "" & EMOD & "" & mOBJ(0).submatches(43) & "" & TPEN & "" & mObj(0).submatches(44) & "" & mObj(0).submatches(45) & "" & mObj(0).submatches(46) & "" & mObj(0).submatches(47) & "" & mObj(0).submatches(48) & "" & _
mObj(0).submatches(49) & "" & mObj(0).submatches(50) & "")
end if
next