获取某市网站普通高中录取分数小工具
<私活案例3>】 获取某市网站普通高中录取分数小工具
前言:
年龄越来越大,记性越来越差,只想把自己一些零零散散的私活经历记录下来,日后回头看,还能想起这些小项目、小技术点,还能想起那些和客户、朋友打交道的各种过往。
个人喜欢实用,不喜欢做研究,此私活案例系列,都是小工具、小应用,无高深技术和复杂流程。 一直相信,能适用到实际项目中的技术就是好技术。
不谈赚钱,技术却是可以学到多而杂,但不精通。
不谈社会,现实却是可以看到真而实,但不学坏。
私活案例3:获取某市网站普通高中录取分数小工具
背景: 威客 是在几年前新生的名词,所以威客网在国内也是很火的。曾几何时,我也浪迹于国内的各大威客网过,当过一段时间的威客。当时,认识了不少同行,也认识了不少客户,做过一些小项目,赚过一些小钱。此小工具是在国内现在应该算最大的威客网接过的一个私活案例。
需求: 一高中男教师发布的一个任务。大概要求描述如下:他要从网站 http://www.cczsb.com/zklq_2010.asp 查询大概200多个学生的高中录取信息(主要有3种信息:准考证号、姓名、录取分数),他现在有200多个学生的准考证号信息,但是每次手动去网站查询,再复制出来,很慢且很耗时耗力。他想做一个小工具,根据他提供的准考证信息,能自动去获取出这些信息,并保存成TXT文本。
手 动查询过程如下所示:
1)打开网页,输入要查询的准考证号:
2)点击:提交查询内容 按钮,查询出信息:
3)手动复制查询出来的信息到TXT文本中:
进展: 接下这个活后,第一反映就是webBrowser控件,于是果断开始,VS2005,C#开工(当时也是刚学C#,正好趁此机会练手),由于以前做过VC下面的webBrowser开发,还算熟练,很快就写完了。
后事: 当时,有个小插曲,就是自己很快就写完了,但是拿了人家钱,又不能立马告诉他写完了,不然人家会以为这么简单的东西还要那么多钱,于是,就拖了3天才交付(现在想想,当时真是不厚道呀,但是又想想苦B的程序员怎么办,有时还是要有点小心眼的)。当时交付完小工具,测试OK的时候,老师那个开心呀,历历在目。
思考: 此小工具,说实话真的没有什么技术含量,但是对于一窍不通的非专业人士来说,却是感觉很高深莫测,有时程序员们,一定要善于利用这个优势去创造最大价值。
案例:
效果图:
PS:源码真的很简单,也不好意思上传了,贴点关键代码吧,想要源码的留个邮箱,我发他(不要骂就行,说实话,我现在看了当时写的代码都想骂人)。
View Code
private void webBrowser1_DocumentCompleted( object sender, WebBrowserDocumentCompletedEventArgs e) { this .button1.Enabled = true ; this .textBox1.Enabled = true ; this .textBox2.Enabled = true ; if (! bFlag) this .lbMsg.Text = "" ; // this.webBrowser1.Document.Window.ScrollTo(500,280); if (iFlag) { string sHtml = "" ; sHtml = this .webBrowser1.Document.Body.InnerHtml; sHtml = sHtml.Replace( " " , "" ); sHtml = sHtml.Replace( " \t " , "" ); sHtml = sHtml.Replace( " \r\n " , "" ); // 得到准考证号 string sNumberTagBegin = " <FONTsize=4face=宋体>准考证号</FONT></TD><TD><FONTsize=4face=宋体> " ; int iNumber = sHtml.IndexOf(sNumberTagBegin); string sNumberTemp = "" ; sNumberTemp = sHtml.Substring(iNumber + sNumberTagBegin.Length, 50 ); string sNumberTagEnd = " </FONT></TD></TR><TR> " ; int jNumber = 0 ; jNumber = sNumberTemp.IndexOf(sNumberTagEnd); string sNumber = "" ; sNumber = sNumberTemp.Substring( 0 , jNumber); // 得到姓名 // 姓名前部分标志 string sNameTagBegin = " <FONTsize=4face=宋体>姓 名</FONT></TD><TD><FONTsize=4face=宋体> " ; int iName = sHtml.IndexOf(sNameTagBegin); // 姓名前部分标志开始位置 string sNameTemp = "" ; sNameTemp = sHtml.Substring(iName + sNameTagBegin.Length, 50 ); // 姓名前部分标志结束位置后50位字符 string sNameTagEnd = " </FONT></TD></TR><TR> " ; // 姓名后部分标志 int jName = 0 ; jName = sNameTemp.IndexOf(sNameTagEnd); // 姓名后部分标志开始位置 string sName = "" ; sName = sNameTemp.Substring( 0 , jName); // 姓名 // 得到录取分数 // 分数前部分标志 string sCountTagBegin = " <FONTsize=4face=宋体>录取分数</FONT></TD><TD><FONTsize=4face=宋体> " ; int iCount = sHtml.IndexOf(sCountTagBegin); string sCountTemp = "" ; sCountTemp = sHtml.Substring(iCount + sCountTagBegin.Length, 50 ); string sCountTagEnd = " </FONT></TD></TR><TR> " ; int jCount = 0 ; jCount = sCountTemp.IndexOf(sCountTagEnd); string sCount = "" ; sCount = sCountTemp.Substring( 0 , jCount); string sResult = "" ; sResult = " 准考证号: " + sNumber + " \t " + " 姓名: " + sName + " \t " + " 录取分数: " + sCount; iFlag = false ; loading = false ; // MessageBox.Show(sResult); string sPath = System.IO.Directory.GetCurrentDirectory() + " /kskh.txt " ; sResult = sResult + " \r\n " ; this .lbMsg.Text = " 程序正在查询,请稍等...... " ; this .button1.Enabled = false ; this .textBox1.Enabled = false ; this .textBox2.Enabled = false ; MakeFile(sPath, sResult); iTotal -- ; if (iTotal == 0 ) { this .lbMsg.Text = " 查询成功!!! " ; this .button1.Enabled = true ; this .textBox1.Enabled = true ; this .textBox2.Enabled = true ; MessageBox.Show( " 查询成功!!! " ); } } }
private void webBrowser1_DocumentCompleted( object sender, WebBrowserDocumentCompletedEventArgs e) { this .button1.Enabled = true ; this .textBox1.Enabled = true ; this .textBox2.Enabled = true ; if (! bFlag) this .lbMsg.Text = "" ; // this.webBrowser1.Document.Window.ScrollTo(500,280); if (iFlag) { string sHtml = "" ; sHtml = this .webBrowser1.Document.Body.InnerHtml; sHtml = sHtml.Replace( " " , "" ); sHtml = sHtml.Replace( " \t " , "" ); sHtml = sHtml.Replace( " \r\n " , "" ); // 得到准考证号 string sNumberTagBegin = " <FONTsize=4face=宋体>准考证号</FONT></TD><TD><FONTsize=4face=宋体> " ; int iNumber = sHtml.IndexOf(sNumberTagBegin); string sNumberTemp = "" ; sNumberTemp = sHtml.Substring(iNumber + sNumberTagBegin.Length, 50 ); string sNumberTagEnd = " </FONT></TD></TR><TR> " ; int jNumber = 0 ; jNumber = sNumberTemp.IndexOf(sNumberTagEnd); string sNumber = "" ; sNumber = sNumberTemp.Substring( 0 , jNumber); // 得到姓名 // 姓名前部分标志 string sNameTagBegin = " <FONTsize=4face=宋体>姓 名</FONT></TD><TD><FONTsize=4face=宋体> " ; int iName = sHtml.IndexOf(sNameTagBegin); // 姓名前部分标志开始位置 string sNameTemp = "" ; sNameTemp = sHtml.Substring(iName + sNameTagBegin.Length, 50 ); // 姓名前部分标志结束位置后50位字符 string sNameTagEnd = " </FONT></TD></TR><TR> " ; // 姓名后部分标志 int jName = 0 ; jName = sNameTemp.IndexOf(sNameTagEnd); // 姓名后部分标志开始位置 string sName = "" ; sName = sNameTemp.Substring( 0 , jName); // 姓名 // 得到录取分数 // 分数前部分标志 string sCountTagBegin = " <FONTsize=4face=宋体>录取分数</FONT></TD><TD><FONTsize=4face=宋体> " ; int iCount = sHtml.IndexOf(sCountTagBegin); string sCountTemp = "" ; sCountTemp = sHtml.Substring(iCount + sCountTagBegin.Length, 50 ); string sCountTagEnd = " </FONT></TD></TR><TR> " ; int jCount = 0 ; jCount = sCountTemp.IndexOf(sCountTagEnd); string sCount = "" ; sCount = sCountTemp.Substring( 0 , jCount); string sResult = "" ; sResult = " 准考证号: " + sNumber + " \t " + " 姓名: " + sName + " \t " + " 录取分数: " + sCount; iFlag = false ; loading = false ; // MessageBox.Show(sResult); string sPath = System.IO.Directory.GetCurrentDirectory() + " /kskh.txt " ; sResult = sResult + " \r\n " ; this .lbMsg.Text = " 程序正在查询,请稍等...... " ; this .button1.Enabled = false ; this .textBox1.Enabled = false ; this .textBox2.Enabled = false ; MakeFile(sPath, sResult); iTotal -- ; if (iTotal == 0 ) { this .lbMsg.Text = " 查询成功!!! " ; this .button1.Enabled = true ; this .textBox1.Enabled = true ; this .textBox2.Enabled = true ; MessageBox.Show( " 查询成功!!! " ); } } }
私活案例
【<私活案例3>】 获取某市网站普通高中录取分数小工具
摘要: 前言: 年龄越来越大,记性越来越差,只想把自己一些零零散散的私活经历记录下来,日后回头看,还能想起这些小项目、小技术点,还能想起那些和客户、朋友打交道的各种过往。 个人喜欢实用,不喜欢做研究,此私活案例系列,都是小工具、小应用,无高深技术和复杂流程。一直相信,能适用到实际项目中的技术就是好技术。 不谈赚钱,技术却是可以学到多而杂,但不精通。 不谈社会,现实却是可以看到真而实,但不学坏。 私活案例3:获取某市网站普通高中录取分数小工具背景:威客是在几年前新生的名词,所以威客网在国内也是很火的。曾几何时,我也浪迹于国内的各大威客网过,当过一段时间的威客。当时,认识了不少同行,也认识了不少客户,做. 阅读全文
posted @ 2013-03-26 00:17 joinclear 阅读(2247) | 评论 (56) 编辑
【<私活案例2>】 某电力局领导收费凭证小工具
摘要: 前言: 年龄越来越大,记性越来越差,只想把自己一些零零散散的私活经历记录下来,日后回头看,还能想起这些小项目、小技术点,还能想起那些和客户、朋友打交道的各种过往。 个人喜欢实用,不喜欢做研究,此私活案例系列,都是小工具、小应用,无高深技术和复杂流程。一直相信,能适用到实际项目中的技术就是好技术。 不谈赚钱,技术却是可以学到多而杂,但不精通。 不谈社会,现实却是可以看到真而实,但不学坏。 私活案例2:某电力局领导收费凭证小工具 背景:我老丈人的一个朋友,是江苏某县城电力局的一位领导(按辈分,我叫他叔叔),几年前的一个下午,突然电话我,几句介绍询问后,说:孩子,什么时候有空,帮忙做个小程序。我受. 阅读全文
posted @ 2013-03-10 23:41 joinclear 阅读(2630) | 评论 (17) 编辑
【<私活案例1>】 某游戏网首页PS设计和Html静态效果源码
摘要: 前言:接私活,相信对于从事IT工作的人,都不陌生。有朋友或熟人的请求,有威客网发布人的任务需求,有意无意的,总会碰到各式各样的私活。作为一名IT屌丝男,也有过不少接私活的经历:合作过团队开发的大项目,签约过特殊行业的小网站,做过不要钱的软件,接过50元的小程序。钱没有赚到,东西却学到多而杂。年龄越来越大,记性越来越差,不谈吃过亏、上过当,只想把自己一些零散的私活经历记录下来,日后回头看,还能想起这个东西我也曾试过。 私活案例1:某游戏网首页PS设计和Html静态效果源码 1)某游戏网首页效果图: 2)Html静态页面源码:View Code 1 <!DOCTYPE html PUBLIC 阅读全文
posted @ 2013-03-04 00:33 joinclear 阅读(1051) | 评论 (4) 编辑
分类: 私活案例
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于获取某市网站普通高中录取分数小工具的详细内容...