数得明白-用C#制作源代码统计软件 (2)
2008-02-23 05:32:59来源:互联网 阅读 ()
{
n ;
sr.ReadLine();
}
codeInfo a = new codeInfo(n, extCur, fCur.Name, fCur.FullName); //存储这个文档的信息
list.Add(a); //将该文档信息加入到集合列表中
}
}
count(ext,dCur.FullName,ref list); //递归遍历子目录的子目录
}
}
2、button2的部分代码
注:codeList为Arraylist集合
private void button2_Click(object sender, EventArgs e)
{
string[] ext = getExt(textBox1.Text);
listBox1.Items.Clear();
codeList.Clear();
//省略判断拓展名是否合法及目录是否为空,详见源码
count(ext, label3.Text, ref codeList); //调用统计函数
if (codeList.Count == 0)
listBox1.Items.Add(" 没有找到指定扩展名的源文档!");
else
{
listBox1.Items.Add(" 共找到" ext.Length "种源文档");
listBox1.Items.Add(" ");
codeInfo typecur = (codeInfo)codeList[0];
long numcur = 0, linecur = 0, lineall = 0;
//下面按照文档名分类统计不同扩展名源程式的总行数
foreach (string extcur in ext)
{
numcur = 0;
linecur = 0;
for (int i = 0; i < codeList.Count; i )
{
codeInfo cur = (codeInfo)codeList[i];
if (extcur == cur.ext)
{
numcur ; linecur = cur.line;
}
}
lineall = linecur;
listBox1.Items.Add(string.Format(" {0,-8}" numcur " 个文档 " linecur "行", extcur)); //统计完一种拓展名后向Listbox添加一行信息
}
listBox1.Items.Add(" 总计" codeList.Count "个文档 " lineall "行");
}
}
在实现过程中,还牵扯到:对输入的拓展名进行分割、填充dataGridView的行/列以显示任何统计文档的周详信息等问题。篇幅限制,不做介绍,详见代码。
五、提高篇
我们能够新建一个Form专门停放dataGridView(更好的显示效果)。这样就牵扯到了窗体间如何传递codeList集合的问题。提示大家能够用this仿“指针”进行传递。
本程式只有一个待统计目录,有兴趣的朋友能够考虑:如何配置多个待统计目录(多一层foreach)。
另外,采用StreamReader获取文档行数的方法再极端大的源码样本运行时会略显慢,大家能够考虑采取其他优化的办法,比如:利用统计学原理找到一个常数(平均每行字符数),然后用文档长度处以这个数以得到行数,当然,这样会降低统计精度。
至此,我们已体验了Visual C# 2005的强大功能并成功实现了这一软件。本程式在Visual C# 2005 WindowsXP SP2下调试通过。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: VC 编程隐藏电脑中的鼠标
- 数得明白-用C#制作源代码统计软件 (1) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash