计算当前文件夹中,有多少行JS代码和ASP代码,并且还可统计代码有多少字节
有示例代码
<%
'\\\\\\\\\\\\\\\\\\\\\
'\
'\ 来自 co***roject.com
'\ 计算js和asp代码
'\ 修改 bluedestiny
'\ mail:bluedestiny at 126.com
'\
'\\\\\\\\\\\\\\\\\\\\\
option explicit
re***nse.buffer=false
class COUNT_CODE
private fso,spath
private asplines, jslines, aspbytes, jsbytes, aspwords
private sub class_initialize
set fso = createobject("sc***ting.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 = fs***etfolder(path)
set files = fo***r.files
dim rx, c
set rx = new regexp
rx***norecase = true
rx***obal = true
rx***ttern = " +"
for each file in files
if right(fi***name,4)=".asp" or right(fi***name,3)=".js" then
set ts = fi***openastextstream
if ts***endofstream then txt = "" else txt = ts***adall
ts.close
txt = rx***place(txt," ")
txt = replace(txt,vbcrlf&vbcrlf,vbcrlf)
arr = split(replace(txt,vbcrlf," ")," ")
aspwords = aspwords + ubound(arr)
arr = split(txt,vbcrlf)
if right(fi***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 = fo***r.subfolders
for each f in folders
iterate f.path
next
end function
public property let path(s)
sp***=server.mappath(s)
end property
public sub count
iterate(spath)
end sub
public sub printf
re***nse.write "ASP:" & "
"
re***nse.write "Total Lines Coded: " & asplines & "
"
re***nse.write "Total Bytes: " & aspbytes & "" & "
"
re***nse.write "Total Individual Elements (words) Typed: " & aspwords & "
"
re***nse.write "JScript:" & "
"
re***nse.write "Total Lines Coded: " & jslines & "
"
re***nse.write "Total Bytes: " & jsbytes
end sub
end class
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'\示例代码
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
dim o
set o=new COUNT_CODE
o.path="bluedestiny/"
o.count
o.printf
%>
上一篇: 一个xmlhttp读取xml的例子
下一篇: 用ASP编写下载网页中所有资源的程序