网站首页 > 书籍教程 > ASP教程 > 小工具:统计有多少行JS代码和ASP代码,并有多少字节

小工具:统计有多少行JS代码和ASP代码,并有多少字节

  • 作者:互联网
  • 时间:2009-06-24 17:25:31

计算当前文件夹中,有多少行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
%>