统计有多少行JS代码和ASP代码

  计算当前文件夹中,有多少行JS代码和ASP代码,并且还可统计代码有多少字节

  有示例代码

  

复制代码 代码如下:

  <%

  '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  '\\

  '\\    来自 codeproject.com

  '\\    计算js和asp代码

  '\\    修改 bluedestiny

  '\\    mail:bluedestiny at 126.com

  '\\

  '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  option explicit

  response.buffer=false

  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

  '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  '\\示例代码

  '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  dim o

  set o=new COUNT_CODE

  o.path="bluedestiny/"

  o.count

  o.printf

  %>