亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

NCC Tools(never code counter tools) V1.0.1發布代碼-代碼統計工具

2020-01-31 15:44:25
字體:
來源:轉載
供稿:網友
界面如下圖:把源代碼存為(hta)文件,因為hta文件沒有狀態欄,所以我這里建議大家存為html文件,這樣可以在狀態欄下看到

NCC掃描的進度,我這里把NCC的maxloop設置為3000,所以文件統計到3000的時候,會自動終止,以防文件夾中文件太多造成運行的負擔。

如果大家喜歡這樣的代碼,就請關注"Never Modules"

主要功能有-
1??勺约哼x擇文件夾,或者單個文件。
2。自己選擇文件后綴名進行統計
3。output information輸出的數據有:
文件個數,
文件的代碼字節數,
單詞個數,
代碼行數,
總代碼字節數
總代碼行數。
4。可以把代碼統計結果用SaveAs存為html或者txt文件。
復制代碼 代碼如下:
<?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 >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>
上一篇:運行程序的hta

下一篇:返回列表

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲 日韩 国产第一| 欧美国产精品人人做人人爱| 日韩欧美在线视频日韩欧美在线视频| 国产精品丝袜白浆摸在线| 九色精品美女在线| 久久久精品免费视频| 欧美激情第1页| 日韩第一页在线| 国产91露脸中文字幕在线| 国产精品免费看久久久香蕉| 欧美激情中文字幕在线| 欧美日韩国产精品一区二区不卡中文| 亚洲天堂av在线免费| 国产一区二区三区在线看| 日韩成人xxxx| 亚洲aⅴ男人的天堂在线观看| 国产精品在线看| 久久亚洲精品视频| 国产精品久久99久久| 久久精品人人爽| 奇米四色中文综合久久| 97视频在线看| 琪琪亚洲精品午夜在线| 精品国产1区2区| 中文字幕亚洲情99在线| 91中文字幕在线| 美女性感视频久久久| 成人黄色影片在线| 日韩中文字幕在线视频播放| 欧美日韩在线看| 欧美重口另类videos人妖| 国产精品午夜一区二区欲梦| 久久久99久久精品女同性| 国产成人av在线| 日本久久精品视频| 日韩精品免费看| 国产成人精品午夜| 国产日韩欧美中文在线播放| 国产极品jizzhd欧美| 91香蕉电影院| 国产精品白丝jk喷水视频一区| 欧洲日本亚洲国产区| 欧美精品18videosex性欧美| 欧美一级淫片播放口| 久久99久久99精品免观看粉嫩| 蜜臀久久99精品久久久无需会员| 欧美丰满少妇xxxx| 国产精品va在线播放我和闺蜜| 国产精品伦子伦免费视频| 国产精品1区2区在线观看| 亚洲成人av在线| 欧美黄色www| 色婷婷**av毛片一区| 久久影院资源站| 久久福利视频网| 中文字幕久久久| 夜夜躁日日躁狠狠久久88av| 久久久精品国产一区二区| 欧美诱惑福利视频| 国产精品18久久久久久首页狼| 欧美色播在线播放| 国产一区二区三区在线播放免费观看| 日韩电影免费观看中文字幕| 亚洲国产精品va| 美日韩精品免费视频| 亚洲精品中文字幕女同| 亚洲精品久久久久久久久久久| 精品久久久久久久久久ntr影视| 在线观看不卡av| 主播福利视频一区| 日韩有码在线观看| 国产欧美日韩精品在线观看| 久久久久久免费精品| 成人天堂噜噜噜| 欧美激情a∨在线视频播放| 日韩av在线免费看| 97香蕉久久超级碰碰高清版| 亚洲国产精品推荐| 亚洲偷欧美偷国内偷| 亚洲精品欧美一区二区三区| 久久久www成人免费精品张筱雨| 欧美成年人视频网站欧美| 色777狠狠综合秋免鲁丝| 国产精品美女久久久久久免费| 爽爽爽爽爽爽爽成人免费观看| 午夜精品福利电影| 性色av一区二区三区免费| 欧美国产亚洲视频| 欧美成人激情视频免费观看| 亚洲精品一区av在线播放| 亚洲女同性videos| 成人性生交大片免费看视频直播| 日本视频久久久| 精品一区二区三区四区在线| 欧美亚洲在线播放| 成人精品视频99在线观看免费| 国产精品麻豆va在线播放| 欧美人成在线视频| 精品国内自产拍在线观看| 国产69精品久久久| 久久久久久久久久久网站| 日本午夜精品理论片a级appf发布| 日韩欧美在线视频免费观看| 亚洲人永久免费| 国产日韩欧美在线视频观看| 国产精品va在线播放| 亚洲精品一区二区网址| 久久久女女女女999久久| 欧美激情视频一区| 91精品91久久久久久| 国产精品久久一区主播| 欧美午夜激情小视频| 亚洲国产精品女人久久久| 中文字幕亚洲欧美一区二区三区| 中文日韩在线观看| 欧美日韩国产中文字幕| 国产精品一区二区三区毛片淫片| 欧美一区二三区| 亚洲第一区中文99精品| 欧美专区国产专区| 成人av.网址在线网站| 欧美精品在线免费播放| 亚洲高清在线观看| 全亚洲最色的网站在线观看| 欧美电影免费观看网站| 色婷婷综合成人| 成人写真视频福利网| 狠狠操狠狠色综合网| 欧美激情亚洲另类| 亚洲视频在线免费观看| 国产91网红主播在线观看| 国内伊人久久久久久网站视频| 欧美高清性猛交| 91中文字幕一区| 欧美成人黄色小视频| 精品久久久久人成| 欧美一级在线播放| 一本色道久久综合狠狠躁篇的优点| 自拍偷拍亚洲区| 91精品久久久久久久久青青| 欧美日韩第一视频| 国产色婷婷国产综合在线理论片a| 中文字幕9999| 中文字幕九色91在线| 国产在线拍偷自揄拍精品| 久久久极品av| 日韩中文字幕免费视频| 日韩av在线网址| 国产欧美精品在线| 国产精品第一页在线| 91精品中文在线| 国产99久久精品一区二区 夜夜躁日日躁| 国产精品成人v| 亚洲美腿欧美激情另类| 精品亚洲va在线va天堂资源站| 91在线网站视频| 国产精品久久久久久久av电影| 国内精品在线一区| 国产视频精品va久久久久久| 韩国精品久久久999| 国产一区二区日韩| 97精品国产97久久久久久免费| 91久久精品在线| 欧美黄色免费网站|