class COUNT_CODE private fso,spath private asplines, jslines, aspbytes, jsbytes, aspwords private sub class_initialize set fso = createobject("scripting.filesystemobject") end sub private sub class_terminate set fso=nothing end sub private function iterate(path) dim folder, folders, files, file, ts, txt, arr, f set folder = fso.getfolder(path) set files = folder.files dim rx, c set rx = new regexp rx.ignorecase = true rx.global = true rx.pattern = " +" for each file in files if right(file.name,4)=".asp" or right(file.name,3)=".js" then set ts = file.openastextstream if ts.atendofstream then txt = "" else txt = ts.readall ts.close txt = rx.replace(txt," ") txt = replace(txt,vbcrlf&vbcrlf,vbcrlf) arr = split(replace(txt,vbcrlf," ")," ") aspwords = aspwords + ubound(arr) arr = split(txt,vbcrlf) if right(file.name,4)=".asp" then asplines = asplines + ubound(arr) aspbytes = aspbytes + len(txt) else jslines = jslines + ubound(arr) jsbytes = jsbytes + len(txt) end if end if next set folders = folder.subfolders for each f in folders iterate f.path next end function
public property let path(s) spath=server.mappath(s) end property public sub count iterate(spath) end sub public sub printf response.write "ASP:" & "<br/>" response.write "Total Lines Coded: " & asplines & "<br/>" response.write "Total Bytes: " & aspbytes & "" & "<br/>" response.write "Total Individual Elements (words) Typed: " & aspwords & "<br/>" response.write "JScript:" & "<br/>" response.write "Total Lines Coded: " & jslines & "<br/>" response.write "Total Bytes: " & jsbytes end sub end class