源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

NCC Tools(never code counter tools) V1.0.1发布代码-代码统计工具

  • 时间:2021-03-18 12:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:NCC Tools(never code counter tools) V1.0.1发布代码-代码统计工具
界面如下图:把源代码存为(hta)文件,因为hta文件没有状态栏,所以我这里建议大家存为html文件,这样可以在状态栏下看到 NCC扫描的进度,我这里把NCC的maxloop设置为3000,所以文件统计到3000的时候,会自动终止,以防文件夹中文件太多造成运行的负担。 如果大家喜欢这样的代码,就请关注"Never Modules" 主要功能有- 1。可自己选择文件夹,或者单个文件。 2。自己选择文件后缀名进行统计 3。output information输出的数据有: 文件个数, 文件的代码字节数, 单词个数, 代码行数, 总代码字节数 总代码行数。 4。可以把代码统计结果用SaveAs存为html或者txt文件。
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>  <title> NCC Tools - http://www.never-online.net </title>  <hta:application id="NCC"   applicationname="NCC application"   border="thin"   borderstyle="normal"   caption="yes"   icon="http://www.never-online.net/images/icon.ico"   maximizebutton="no"  minimizebutton="yes"  showintaskbar="no"   singleinstance="yes"  sysmenu="yes"   version="1.01"   windowState="normal"/>  <meta http-equiv="ImageToolbar" content="no" />  <meta name="author" content="BlueDestiny, never-online"/>  <meta name="keywords" content="never modules, Mozilla CSS, C#, .net, Refercence, BlueDestiny, never-online, www.never-online.net"/>  <meta name="description" content="BlueDestiny, never-online"/>  <meta name="title" content="never code counter (NCC) - http://www.never-online.net" />  <meta name="creator.name" content="Genius Lau, never-online, blueDestiny" />  <style type="text/css" media="all" title="Default">  body { background-color:buttonface; }  body,td,input { font:9pt tahoma; }  h1 { text-align:center; font-weight: bold; font-family: tahoma; font-size: 16pt; }   fieldset { height:300px; }  legend { font-weight: bolder; }  .btn { border-left:4px solid #444; border-top:1px solid #444; border-bottom:1px solid #444; border-right:1px solid #444; }  .two { width:200px; }  .txt { border:1px solid #444; }  .file { display:none; width:300px; border-left:4px solid #444; border-top:1px solid #444; border-bottom:1px solid #444; border-right:1px solid #444; }  #loading { display:none; filter:alpha(opacity=70); border:1px solid #444444; background-color:appworkspace; color:#ffffff; width:300px; font-size:13px; font-weight:bold; font-family:arial; padding:10px; position:absolute; top:0; left:0; }  #left { line-height:200%; width:50%; padding:20px; }  #left ul { margin:0 0 0 10px; }  #left li { list-style-type: decimal; margin:20px 10px 15px 10px; }  #footer { font-size:11px; text-align:center; }  #right { padding:20px; width:50%; }  #outputWrapper { padding:10px; }  </style>  <script type="text/javascript">  //<![CDATA[  //======================================================================================  //  // Module : NCC - never code counter V1.01 beta  // Script by : never-online, blueDestiny  // Updated : 2006-6-25  // Copyright : Miracle technology all reserved  // Website : http://www.never-online.net  // Email : blueDestiny@126.com  // Blog : http://blog.csdn.net/blueDestiny, http://blog.never-online.net/  // Comment : Permission given to use this script in ANY kind of applications if  // header lines are left unchanged.  //  //======================================================================================  //====================================================================================  // Ultity Function  var doc = document, wnd = window;  String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); };  Array.prototype.push = function(x) { this[this.length] = x; };  Array.prototype.pop = function() { return this[this.length-1]; };  //====================================================================================  var NCC =   {  // Private Variables  _maxloop : 3000,  _version : "1.02 beta",  _author : "BlueDestiny, never-online",  _webURI : "http://www.never-online.net",  _lines : {"total":0},  _bytes : {"total":0},  _files : {"total":0},  _words : {"total":0},  _error : {},  _filesExts : "cs,js,asp,xml,aspx",  _fsoObj : new ActiveXObject("Scripting.FileSystemObject")  // make sure Your fso activeXObject is availd. otherwise can not runing next code  };  // Public Functions API  NCC.splash = function()  {  };  NCC.init = function()  {  var fileDlgObjStr = '<object id="filepathDlg"'  +' width="0px" height="0px"'  +' classid="CLSID:F9043C85-F6F2-101A-A3C9-08002B2F49FB"'  +' codebase="http://activex.microsoft.com/controls/vb5/comdlg32.cab">'  +'</object>';  var folderDlgObjStr = '<object id="folderpathDlg"'  +' classid="CLSID:13709620-C279-11CE-A49E-444553540000"'  +' width="0" height="0">'  +'</object>';  var loadingObjStr = '<div id="loading"></div>';  doc.body.insertAdjacentHTML("beforeEnd", fileDlgObjStr);  doc.body.insertAdjacentHTML("beforeEnd", folderDlgObjStr);  doc.body.insertAdjacentHTML("beforeEnd", loadingObjStr);  }  NCC.chkFileExts = function(filenameStr)  {  var a = this._filesExts.trim().split(",");  var f = this.getFileExts(filenameStr);  for (var i=0; i<a.length; i++)  if (f.toLowerCase() == a[i].toLowerCase()) return true;  return false;  };  NCC.output = function(wrapperID)  {  var k, x; x=[];   x.push("------------- Files -------------");  // -- part of files --  for (k in this._files)  x.push("[" +k+ "]: " +this._files[k]+ "");  // -- part of words --  x.push("------------- Words -------------");  for (k in this._words)  x.push("[" +k+ "]: " +this._words[k]+ "");  // -- part of bytes --  x.push("------------- Bytes -------------");  for (k in this._bytes)  x.push("[" +k+ "]: " +this._bytes[k]+ "");  // -- part of lines --  x.push("------------- Lines -------------");  for (k in this._lines)  x.push("[" +k+ "]: " +this._lines[k]+ "");  x = x.join("\n");  if (wrapperID) {  var a = doc.all(wrapperID), t=a.tagName.toLowerCase();  if (!a) return wnd.alert("HTMLElement ID \"" +wrapperID+ "\" is not valid!");  if (t=="input" || t=="textarea") a.value = x;  else a.innerHTML = x.replace(/\n/,"<br/>");  }  return x;  };  NCC.saveAs = function(elIdorStr)  {  var dlg = doc.all("filepathDlg");  var a = doc.all(elIdorStr);  if (a) {  var t = a.tagName.toLowerCase();  var fileStr = (t=="input" || t=="textarea") ? a.value : a.innerHTML.replace(/<br(\/)?>/g, "\n");  } else {  fileStr = elIdorStr;  }  dlg.cancelError=true;  try {  dlg.filter="Text Files (*.txt)|*.txt|HTM Files (*.htm)|*.htm";  dlg.showSave();  var f = this._fsoObj.CreateTextFile(dlg.filename,true);  f.write(fileStr);  f.Close();  } catch(ex) {};  };  NCC.setFilesExt = function(filesExtsStr)  {  this._filesExts = filesExtsStr;  return true;  };  NCC.getFilesExts = function()  {  return this._filesExts;  };  NCC.getFileExts = function(filenameStr)  {  var a=filenameStr.split(".");  return a[a.length-1].toLowerCase();//a.pop()  };  NCC.selectSingleFile = function()   {  var dlg = doc.all("filepathDlg");  var fps = doc.all("filepathStr");  var fes = this._filesExts;  var filename="", filter="", arr=[];  arr = fes.trim().split(",");  for (var i=0; i<arr.length; i++)  filter += arr[i].toUpperCase() +" Files (*." +arr[i]+ ")|*." +arr[i]+ "" +(i==arr.length-1?"":"|");  dlg.cancelError=true;  try {  dlg.filter = filter;  dlg.showOpen();  filename = dlg.filename;  } catch(ex) {};  if (filename.trim()=="") return false;  fps.value = filename;  if (!this.chkFileExts(filename)) return wnd.alert("File Extension name \"" +filename+ "\" is not valid!");  return filename;  };  NCC.selectFolder = function()  {  var dlg = doc.all("folderpathDlg");  try {  var pathObj = dlg.browseForFolder(0,"Please Select Folder:",0);  var pathStr = pathObj.parentFolder.parseName(pathObj.Title).path;  return pathStr;  } catch(ex) { return false };  };  NCC.countFolder = function(folderpathStr)   {  var ldg = doc.all("loading");  with (ldg.style) {  display = "block";  top = parseInt((doc.body.clientHeight-ldg.offsetHeight)/2);  left = parseInt((doc.body.clientWidth-ldg.offsetWidth)/2);  }; ldg.innerHTML = "<div align=\"center\">Now Counting...</div>";       wnd.status = "NCC Counting...";  if (!this._fsoObj.FolderExists(folderpathStr)) {  this.countSingleFile(folderpathStr);  } else {  var cnt = 0;  function iterator(folderpathStr) {  var a = NCC._fsoObj.getFolder(folderpathStr);  var e = new Enumerator(a.files)  for (; !e.atEnd(); e.moveNext()) {             NCC.countSingleFile(e.item());             if (cnt++>=NCC._maxloop) return;           }  var f = new Enumerator(a.subFolders)  for (; !f.atEnd(); f.moveNext()) {             iterator(f.item());             if (cnt++>=NCC._maxloop) return;           }  }  iterator(folderpathStr);  }  ldg.innerHTML = "<div align=\"center\">NCC Count Completely.</div>"  wnd.status = "NCC Count Completely.";  wnd.setTimeout(function(){ldg.style.display = "none";},3000);  };  NCC.countSingleFile = function(filepathStr)   {  var x, a, f, e;  var ldg = doc.all("loading");  if (!this._fsoObj.FileExists(filepathStr)) return false;  f = this._fsoObj.GetFile(filepathStr);  if (this.chkFileExts(f.name))       {         var o = f.openAsTextStream(1);         if (o.atEndOfStream) { x = ""; } else { x = o.ReadAll(); }         x = x.replace(/(\n|\r)+/mg,"$1");         a = x.split("\n");         e = this.getFileExts(f.name);         this._bytes["total"] += x.length;         this._bytes[e] ? this._bytes[e]+=x.length : this._bytes[e]=x.length;         this._lines["total"] += a.length;         this._lines[e] ? this._lines[e]+=a.length : this._lines[e]=a.length;         a = x.replace(/(\s|\t| )+/g," ").split(" ");         this._words["total"] += a.length;         this._words[e] ? this._words[e]+=a.length : this._words[e]=a.length;         this._files["total"] ++;         this._files[e] ? this._files[e]++ : this._files[e]=1;       }  wnd.status = "NCC(\"" +f.path+ "\")";  ldg.innerHTML = "now count \"" +f.name+ "\"."       return this.chkFileExts(f.name)  };  NCC.formatSingleFile = function(filepathStr)  {  };  //====================================================================================  function window.onload() {  NCC.init();  wnd.resizeTo(800,480);       doc.all("outputWrapper").value = "";  setFilesExts();//setFilesExts.call(this);  }  function setFilesExts() {  doc.all("filesExts").value = NCC.getFilesExts();  }  function output() {  /*  var e = event.srcElement;  var a = doc.body.all;  for (var i=0; i<a.length; i++) {  if (a[i].tagName.toLowerCase()=="input") {  if (a[i]!=e) a[i].disabled=true;  }  }  */       NCC.setFilesExt(doc.all("filesExts").value)  NCC.countFolder(doc.all('filepathStr').value);  NCC.output('outputWrapper');  }  function changeFileExt() {  var groupfileExts = doc.all("groupfileExt");  var fileExtStr = [];  for (var i=0; i<groupfileExts.length; i++) {  if (groupfileExts[i].checked)  fileExtStr.push(groupfileExts[i].value);  }  NCC.setFilesExt(fileExtStr.join(","));  setFilesExts();  }  function selectSingleFile(val) {      if (!NCC.selectSingleFile()) return "";  doc.all(val).value = NCC.selectSingleFile();  }  function selectFolder(val) {  var a = NCC.selectFolder();  if (a==false) return "";  doc.all(val).value = a;  }  function saveAs() {  NCC.saveAs('outputWrapper');  //NCC.saveAs(NCC.output());  }  //]]>  </script> </head> <body id="www.never-online.net">  <h1> NCC (never code counter) tools - http://www.never-online.net </h1>  <fieldset>  <legend> - Application NCC (never code counter) -</legend>  <table width="100%" border="0" cellpadding="0" cellspacing="0">  <tr>  <td align="left" valign="top" id="left">  <ul>  <li>  <input name="filepathStr" type="text" class="txt" value="type your file or folder path" size="30">  <input class="btn" type="button" value=" FILE " onclick="selectSingleFile('filepathStr')"/>  <input class="btn" type="button" value="FOLDER" onclick="selectFolder('filepathStr')"/>  </li>  <li>  <input name="groupfileExt" value="asp" type="checkbox" checked onclick="changeFileExt()"/>  .asp  <input name="groupfileExt" value="js" type="checkbox" checked onclick="changeFileExt()"/>  .js  <input name="groupfileExt" value="xml" type="checkbox" checked onclick="changeFileExt()"/>  .xml  <input name="groupfileExt" value="aspx" type="checkbox" checked onclick="changeFileExt()"/>  .aspx  <input name="groupfileExt" value="cs" type="checkbox" checked onclick="changeFileExt()"/>  .cs   <br/>  <input name="filesExts" type="text" class="txt" id="filesExts" value="" size="40">  </li>  <li>  <input class="btn two" type="button" value="Output Information" onclick="output()"/>  <!-- not complete <input name="button" type="button" class="btn" onclick="NCC.format();" value="Format Code"/> -->  </li>  <li>  <input class="btn two" type="button" value="Information Save As" onclick="saveAs();"/>  </li>  </ul>  <div id="footer">  <p>   NCC V1.01 beta Power By BlueDestiny, never-online  <br/>   More code please visit <a href="http://www.never-online.net" target="_blank" title="visit my site">http://www.never-online.net</a>   </p>  </div>  </td>  <td align="left" valign="top" id="right">  <fieldset>  <legend>- Output Information -</legend>  <textarea id="outputWrapper" style="border:0; background-color:buttonface; width:96%; height:100%;"></textarea>  </fieldset>  </td>  </tr>  </table>  </fieldset> </body> </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部