【原】得心应手小工具开发——公务员考试之筛选我的职位报名人数的小工具
2012-03-03 23:49
417 查看
【开发动机】
又是一年的公务员考试,笔者一直在纠结要不要去再趟一次浑水,外一要上岸了呢。3月1日开始报名,6号是最后截止时间,我的态度就是先观望几天,到5、6号最后阶段视报名情况选一个竞争压力比较小的职位争取一下。因为考试办会每天定时发布一次截止到XX日XX时已报名的人数列表嘛,就是这个: http://gwybm.tjpnet.gov.cn/info/bmqk.htm 职位太多,找起来实在是太麻烦啦。于是打算写一个小工具,根据自己有意向的职位一键筛选出那个职位的报名缴费人数,这就一劳永逸了嘛~~(虽然也只是6日前有效。。)【开发实现】
1、打开VS,建一个简单的winform界面。包括一个按钮,一个richtextbox,一个webbrower控件
2、richtextbox中的内容可以从文本文件读取,也可以直接在控件中输入,格式上有要求:
例:208,人民法院塘沽审判区,行政综合二;
“208”是单位代码,“人民法院塘沽审判区”是报考部门,“行政综合二”是招考职位, 有了这三个元素就可以确定我要观望的那个职位啦! 哦,对了,这个职位信息在招考职位表的xls文档中有的,选好这个职位后,取出这三个元素来就可以了。
3、webbrower中是为了呈现筛选出来的职位信息,其实就是一个重写的html代码。
4、编写按钮的处理事件
源码如下:
private void button1_Click(object sender, EventArgs e) { WebClient client = new WebClient(); Stream myStream = client.OpenRead(@"http://gwybm.tjpnet.gov.cn/info/bmqk.htm"); //这是当日公布的职位报考情况列表 StreamReader sr=new StreamReader(myStream); string strHtml = sr.ReadToEnd(); //取到全部源码 sr.Close(); //取页面头部 开始 int headend = strHtml.IndexOf("<tr class=\"public_form_td\">"); string strHead = strHtml.Substring(0, headend); //获取到源页面的头部代码,用于拼装整个页面 //取页面头部 结束 //取职位表 开始 int startIndex = 0; int stopIndex = 0; List<string> listStr = new List<string>(); //所有职位的<TR></TR>标记 for (int i = 0; i < 5000;i++ ) { startIndex = strHtml.IndexOf("<tr class=\"public_form_td\">") +27; stopIndex = strHtml.IndexOf("</tr>",startIndex) + 5; if (startIndex == 26||stopIndex==4) //如果找不到字串了,说明已经都取完了,结束循环 { i = 1000000; continue; } string Item ="<tr class=\"public_form_td\">"+ strHtml.Substring(startIndex, stopIndex - startIndex); listStr.Add(Item); strHtml = strHtml.Substring(stopIndex); } //取职位表 结束 //处理自选的职位信息 开始 string StrMyFav = this.richTextBox1.Text; string[] MyFav = StrMyFav.Split(';'); for (int i = 0; i < MyFav.Length; i++) { MyFav[i]=MyFav[i].Replace('\n',' '); } //处理自选的职位信息 结束 List<string> myfaver = new List<string>(); //保存最后筛选出的职位的<TR></TR>标记 集合 foreach (string singelFav in MyFav) { string[] keyword = singelFav.Split(','); foreach (string singleJob in listStr) { int correctCount = 0; for (int i = 0; i < keyword.Length; i++) { if (singleJob.Contains(keyword[i].Trim()))//就为一个空格弄了我一个多小时,哎 { correctCount++; } } if (correctCount == keyword.Length && keyword.Length != 1)//如果包含字串的数量符合自选职位的元素数量,说明这个职位就是我们要筛选的职位 { myfaver.Add(singleJob); } } } //重新拼装要呈现的HTML 开始 StringBuilder MyListHtml = new StringBuilder(); MyListHtml.AppendLine(strHead); foreach(string line in myfaver) { MyListHtml.AppendLine(line); } MyListHtml.AppendLine("</table></td>"); MyListHtml.AppendLine("</tr>"); MyListHtml.AppendLine("</table></td>"); MyListHtml.AppendLine("</tr>"); MyListHtml.AppendLine("</table>"); MyListHtml.AppendLine("</body>"); MyListHtml.AppendLine("</html>"); //重新拼装要呈现的HTML 结束 webBrowser1.DocumentText = MyListHtml.ToString(); } private void Form1_Load(object sender, EventArgs e) { StreamReader sr = new StreamReader(Application.StartupPath + @"\myFav.txt"); this.richTextBox1.Text = sr.ReadToEnd(); sr.Close(); }
【工具演示】
【总结】
这个工具主要值得提的就是对于字符串的处理,特别是在调试过程中忽略了一个空格,导致了1个小时的浪费。。。作者:Tony zhao 欢迎访问:找与淘网
出处:http://www.cnblogs.com/ytaozhao 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- 【原】得心应手小工具开发——初步统计博客园首页博文的回复率
- APICloud案例源码、模块源码、考试源码、开发工具大集合!赶快收藏
- 2008年国家公务员考试报名条件
- 【原】得心应手小工具开发——网易公开课课程下载链接提取器
- 2008年中央国家机关公务员考试招考职位信息
- 2009年-国家公务员考试15日起报名 将招录1.5万人
- 【原】得心应手小工具开发——IE代理快速切换工具
- 新职位,快报名了,有去美国的哦(WPF开发主管职位,去美国)
- 批量大文本筛选过滤工具开发记录
- 报名公务员考试了
- 软件开发工具考试要背后的1
- 自学考试-“软件开发工具”
- 【原】得心应手小工具开发——快播自动升级杀手
- 2008年国家公务员考试网络报名系统
- 高性能WEB开发 - web性能测试工具推荐
- GHUnit IOS开发第三方单元测试工具 使用方法
- 游戏开发常用工具软件总结
- Android Studio——使用Android ADT最新开发工具后,新建项目出现appcompat v7 他是什么?
- 使用intellij的idea集成开发工具中的git插件
- TexturePacker图片打包工具——简单介绍+简单制作图片集教程——cocos2d-x游戏开发引擎图片制作必备