分类目录归档:编程&艾剃

安卓手机屏幕失灵后通讯录导出

手机进水后触摸屏失灵,但其它实体按键(电源和音量)可用,其它功能一概正常。

  1. 关机后,按住 电源 和 音量上 至震动,松开电源,保持按住音量上,进入recovery模式。
  2. 在recovery模式下,通过菜单选项进行手机备份,此过程可能需要几十分钟,备份好的文件位于手机存储的 clockworkmod/backup 以时间命名的文件夹内。
  3. 在recovery模式下,通过菜单挂载选项中启用usb连接,将手机通过usb连接到电脑,此时电脑应识别手机,并可查看其中文件。
  4. 拷贝备份文件中的 data 部分,包括data.ext4.tar (data.ext4.tar.a/b),到电脑,此后可移除手机。
  5. 在电脑的文件位置打开命令行,使用指令将多个tar文件合并: type data.ext4.tar.a data.ext4.tar.b >> data.ext4.tar,生成合并后的可解压文件。
  6. 将压缩文件解压,在其中找到 data/com.android.providers.contacts/databases 目录,其中 contact2.db 文件即为保存有联系人信息的sqlite数据文件。此后原始压缩文件可丢弃。
  7. 使用sqlite工具,如 DB Browser for Sqlite 打开数据文件,浏览观察其中raw_contact和data表。
  8. 构建sql语句 select raw_contact_id,data1,data2,data3,data4 from data进行查询,复制查询结果到 excel 文档。此后数据库文件可丢弃。
  9. 编辑整理 excel 文件,导出为csv格式。
  10. 使用 CSV to vCard 工具,将csv导出为vcf文件,注意选择utf-8编码。
  11. 使用可进行编码转换的文本编辑器(如 Notepad++ )将导出的vcf文件“转为UTF-8无BOM编码格式”,保存。
  12. 将vcf文件传至新手机,用自带联系人工具打开,即可完成导入。

在VisualStudio 编辑器文本替换中使用正则表达式

替换时使用正则表达式,其优点在于可以通过正则分组捕获,并在替换字符串中使用。
在VS2012之前的版本中,捕获内容用{}包含,引用时,使用 \1 形式;
在VS2012及以后版本中,捕获内容符合正则表达式,用()包含,引用时使用 $1 形式。
下面以新版本格式举例说明:
假设代码中包含多个自动属性,如

假设所在类型实现INotifyPropertyChanged接口,且有方法

现在要为所有公共属性添加相应的私有字段,使其能在赋值变更时调用函数触发属性通知事件,则可在Ctrl + h唤出替换窗口,并启用正则表达式。

在源文本框中输入:

public (\S*) (\S*) { get; (\S*\s?)set; }

在替换目标文本框中输入:

public $1 $2 { get { return _$2; } $3set { _$2 = value; RaisePropertyChangedEvent(“$2“); } } $1 _$2;

在匹配文本中,每个分组用小括号()包含,并从1开始捕获。标记为红色的为属性类型标记为绿色的为属性名标记为紫色的为set访问器修饰符

在目标文本中,被捕获的文本用美元符号$和1基索引值代表,替换后的代码为每个公共属性增加了一个私有字段,该字段名为在属性名前加上一个下划线_。

 

关于WCF net.tcp站点配置和调试

简介

使用WCF net.tcp激活可以全双工通信,从而实现由服务端向客户端的消息传递。与http双工不同的是:http需要通信双方采用相等的身份,即同时是服务端和客户端的集合体,这也意味着双方在同一网络或均拥有公网IP。

net.tcp直接利用tcp协议进行通信,这就限制了其在浏览器客户端(http环境)的使用,当需要从服务端向浏览器主动通信时,须考虑其他技术如SignalR/HTML5.

站点配置

在配置服务器IIS时,若遇到服务无法访问,可尝试如下操作,这些是某侠学习过程中发现比较容易遗忘的几点:

  • 为站点添加net.tcp绑定;
  • 若在子网中,设置路由器的转发规则;
  • 添加808端口(或其他非默认端口)的防火墙规则;
  • 在站点/应用程序配置中添加net.tcp到已启用的协议

项目调试

默认情况下,ASP.NET项目调试会使用IIS Express,但IIS Express是不支持net.tcp激活的,同时WCF net.tcp服务也不会使用其随机端口(这个端口是为http服务准备的)。

若要调试net.tcp服务,应选择“本地IIS”方式,设置和添加虚拟目录指向项目文件夹(可通过属性页自动设置),而本地IIS设置可参考前一节。