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”/>
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; }
//
//======================================================================================
//
// 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 : ,
_bytes : ,
_files : ,
_words : ,
_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 = ‘
+’ width=”0px” height=”0px”‘
+’ classid=”CLSID:F9043C85-F6F2-101A-A3C9-08002B2F49FB”‘
+’ codebase=”http://activex.microsoft.com/controls/vb5/comdlg32.cab”>’
+”;
var folderDlgObjStr = ‘
+’ classid=”CLSID:13709620-C279-11CE-A49E-444553540000″‘
+’ width=”0″ height=”0″>’
+”;
var loadingObjStr = ‘
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
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/,””);
}
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(/
/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
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 = ”
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 = ”
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() {
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
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());
}
//]]>
NCC (never code counter) tools – http://www.never-online.net
.asp
.js
.xml
.aspx
.cs
NCC V1.01 beta Power By BlueDestiny, never-online
More code please visit http://www.never-online.net
</html>