WP8.1简单项目 《在线词典》

为什么要做这个词典?

  1. 学了正则表达式要运用
  2. 增加WP开发熟练度

项目中运用了那些技术?

  1. HttpClient
  2. 正则表达式
  3. 数据绑定

详解

通过http://cn.bing.com/dict/search?q=可以向必应词典发送查询单词请求,可以得到一个如下的页面 具体代码如下:

string uri = "http://cn.bing.com/dict/search?q=" + word;
HttpClient hc = new HttpClient();
string htmlFile = await hc.GetStringAsync(uri);

这样,页面的源代码就储存在htmlFile里面了,接下来让我们来解析这份文件,我们要用到的是正则表达式,不了解的同学可以到这里去花30分钟简单的学一下.

首先,我们需要确定哪些文本是我们需要的,显而易见,我们需要橙色框中的部分。 然而,捕获这段文本并不方便,通过观察页面源代码,我发现了如下的内容 高亮出来的部分不正是我们需要的解释吗?而且捕获它们也非常的方便,只需要如下的代码。

Regex re = new Regex(@"(?<=],)[a-zA-Z网].*?(?=""/>)", RegexOptions.IgnoreCase);
Match m = re.Match(htmlFile);

其中,我们用到的正则表达式为(?<=],)[a-zA-Z网].*?(?="/>) 为了得出这个表达式,我用到了这个测试工具,而且这个工具还可以一键生成C#语句,相当方便。

这样,我们就得到了这样的初步结果

n. 密集的人(或东西);方阵; 网络释义: 密集阵;趾骨;指骨;

再通过这个表达式可以把这个解释按词性断开 [a-zA-Z网].*?(?=;\s) 需要给上面的初步结果尾部加一个空格

为了向用户展示结果,我用了数据绑定(对于初学者,怎么能把自己学过的东西都用上就怎么搞)。 首先,创建一个MyDic类,让它继承于INotifyPropertyChanged接口,并实现这个接口。添加一个用来接收事件的函数

private void RaisePropertyChanged(string bindingpath)
        {
            if (PropertyChanged!=null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(bindingpath));
            }
        }

MyDic对象的一个属性的值发生变动的时候,会发布一个PropertyChanged事件,所以我们需要在对应的属性的set语句后调用这个函数。这样,它就能在属性发生改变的时候通知UI中展示结果的控件:该刷新了~



The End.

时间: 2024-11-05 21:37:26

WP8.1简单项目 《在线词典》的相关文章

基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。

基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍.最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室.

在线词典查询系统

做这个"在线词典查询系统",起初感觉比较难,一方面是数据库的庞大,另一方面是知识面的广度,几乎用上了所有的知识,要是界面和体验度好的话还必须要用到ajax,但是,在这里为了简化过程,突出后台业务逻辑,数据库数据采用了小部分的模拟数据,没有进行界面优化,所以,在研究起来也就降低了代码的复杂度. 所谓的在线词典查询,就是接收到用户的查询数据,由服务器执行去数据库去找到数据并且返回给客户端的过程,虽然这个过程说起来比较简单,但真正把它做出来还是要费一些时间的.在面是做这个项目的具体过程. 首

一个简单的在线推荐系统的实现

推荐系统,主要采用对历史数据的分析计算,得到某种模型,对未来的数据进行预测.说到底,还是分类问题. Mahout,是一个可扩展的机器学习库,可用于单机,也可用于Hadoop. Mahout的API非常简单,实现一个推荐功能只需要如下的几行代码: DataModel model = new FileDataModel(new File(file));//建立数据模型 UserSimilarity similarity = new PearsonCorrelationSimilarity(model

wp8手机浏览器项目

项目需求如下: 1.页面布局 最上方为搜索/网址框 中间为网页显示区,默认主页为百度搜索 最下方为功能栏,分别有后退,前进,窗口和更多功能 在更多功能中有 分享给好友 发送网址到桌面 查看历史记录等 2.搜索/网址框 用户在最上方的搜索/网址框中可以进行搜索或者输入网址 如果输入的网址则跳转到该网址 如果是文字内容,则对该文字进行百度搜索 用户点击输入时弹出url软键盘 回车进行搜索或者网址跳转 跳转之后软键盘关闭 在用户浏览网页时,搜索/网址框显示该网页的标题 当用户点击搜索/网址框进行操作时

在线词典--(一、流程分析)

在线词典实现框架  应用综合项目: 1.在线英英词典 2.项目功能描述 3.用户注册和登录验证 4.服务器端将用户信息和历史记录保存在数据库中,客户端输入用户名和密码,服务器端在数据库中查找.匹配,返回结果 5.单次在线翻译 6.根据客户端输入的单次在字典文件中搜索 7.历史记录查询 8.项目分析 项目流程框架: 客户端 服务器端: 原文地址:https://www.cnblogs.com/y4247464/p/12245110.html

.Net remoting方法实现简单的在线升级(上篇:更新文件)

一.前言:       最近做一个简单的在线升级Demo,使用了微软较早的.Net Remoting技术来练手. 简单的思路就是在服务器配置一个Remoting对象,然后在客户端来执行Remoting对象中的方法. 过程: (1) 读取本地dll文件的名称与版本号,与服务器的进行对比 (2) 确认需要升级的文件名称与版本号并告诉服务器,服务器将其复制到一个临时文件夹并压缩成zip (3) 将服务器的zip下载到本地的临时文件夹,并解压. 定义服务器端为UpdateServer,其配置文件为: <

PHP基础示例:简单的在线文件管理

先截个图: 下面为代码部分,由于只有一个文件,所以就不折叠了. 1 <?php 2 //简单的在线文件管理 3 4 $path = "./"; 5 $filelist=array("filesystem.php");//要过滤掉的文件 6 7 //一.根据action的信息值,做对应的操作 8 switch(@$_GET['action']) 9 { 10 case "del": //删除一个文件 11 unlink($_GET["

cocos2d-x on wp8架构简单介绍

1,基于C++的开发架构 支持3大移动平台以及3大桌面平台. 分为图形,声音,物理3大模块,另外还有脚本的导出. 在wp8/win32上的图形是基于d3d的,而在其它平台是基于opengl/opengl es的 下载地址: http://www.cocos2d-x.org/download 2,基础概念 Director类,管理.切换全部场景 Scene类,场景,cocos2d中将全部游戏流工作都抽象成Scene,场景中包括各种对象. Layer类,对象管理层,可透明,可包括Sprite和Lab

eclipse建立springMVC 简单项目

如何通过eclipse建立springMVC的简单项目,现在简单介绍一下. 工具/原料 eclipse 相关jar包 方法/步骤 新建一个动态web项目,选择 Dynamic Web Project 点击 NEXT  填写项目名称,点NEXT  NEXT  选中Generate web.xml 选项,结束. 在项目下建立相关文件夹,包括java,resources(存放spring等资源文件),view(存放动态页面),右键点击项目,修改properties -> sources 为java和r