8月 27

XAMPP Authentication required

突然发现XAMPP总是莫名其妙的需要验证: 访问不存在的链接,不报404,却返回401,搞的人很是郁闷: 几乎打算重装了。 然而重装也很麻烦,于是去检查conf文件盒error.log,在errror.log里发现大量一样的记录: 百度了一下,是和伪静态有关的,鉴于本机基本也用不到伪静态,就直接注释掉了mod_rewrite,重启apac … Continue reading

8月 22

QT5环境搭建遇到的问题

一、头文件无法找到 在 .pro 末尾添加 QT += widgets 二、丢失动态链接库 一打开程序就提示丢失 qt5Core.dll,但在ide里面却可以运行。 设置环境变量,将qt的bin目录加入环境变量,需重启后才生效。 三、无法定位程序输入点 设置完环境变量并重启后遇到这个问题,将qt的bin目录下的所有dll (1个多G,好大 … Continue reading

8月 22

C++ stat处理文件属性

用stat函数可以得到诸如修改时间,所有者,文件权限等文件属性。 wgs2sgf在处理对局日期时,由于无法在wgs文件中找到对局时间方面的信息,受贴吧一大神启发,将文件的修改时间作为对局日期: windows中需要用MinGW编译。 下面是函数参考: 时间的转换 日期贮存结构date 时间贮存结构time char *ctime(long … Continue reading

8月 22

用stringstream进行类型转换

stringstream通常是用来做数据转换的。相比c库的转换,它更加安全,自动和直接。先来看stringstream的一个实例,基本数据类型转换例子 int转string: wgs2sgf需要将读取的wgs信息转换成为字符串,以方便统一写入sgf文件。利用stringstream,可以完美的实现转换: 参考:http://www.cpp … Continue reading

8月 22

掩码应用实例

一、什么是掩码 如果要对一个整数中的某些位进行操作,可以用掩码(Mask)。比如掩码0x0000ff00表示对一个32位整数的8~15位进行操作。 二、掩码应用实例 此例记录处理QQ围棋wgs棋谱积分信息时掩码的运用。由于积分信息是要算补码的,负积分求反码时,由于int可能是4个字节,即32位,单字节的ff取反后为ffffff00,不是希 … Continue reading

8月 21

QQ围棋棋谱转换工具wgs2sgf V1.4发布

由于前段时间解析了大部分wgs棋谱信息,诸如贴目,让子棋,点目结果,段位,对局时间等以前无法处理或者处理有bug的问题都一一解决了。现在发布1.4版本,基本上可以完美转换wgs棋谱。 版本预览: 使用方法参见:http://www.annhe.net/article-1962.html 程序下载:点此下载 项目主页:https://git … Continue reading

8月 12

Adblock:闲聊互联网广告过滤

引言 前些天的一则新闻:浏览器广告拦截每年让谷歌损失8.87亿美元,让我知道了Adblock plus这个插件。由于自己也是Google Adsense用户(虽然只是娱乐级别的,一年不足15刀) ,所以关注了相关讨论。 一、Adblock与Anti-Adblock 或许和广大网民关系最密切的就是优酷等视频网站的反Adblock行动了: 各 … Continue reading

8月 06

QQ围棋wgs棋谱积分信息

经过又一天的苦逼的努力,wgs文件解读有了新的进展,20h行和50h行又解读了个4个字节,他们表示黑棋和白棋的积分信息,通过积分和段位的对照关系在转换为段位级位信息。 下面是20h和50h行: 无头苍蝇似的算来算去,一开始算前两个字节,倒也可以凑出负的积分来,可是到高分区down个高手的棋谱来,却怎么也凑不出来了。继续算,终于撞大运让我算 … Continue reading

8月 06

QQ围棋wgs棋谱胜负信息

终于解读了wgs中的胜负信息,基本只差对局时间信息了。 胜负信息在60h行,9到d列。期中 9标识的是棋局结束方式,通过UltraEdit修改该字节内容,得下表(PS.又多了一种分析棋谱的方法): 60h,9 意义 00 对局中未分出胜负 01 步数超出上限未分出胜负 02 和棋 03 出错 04 结束 05 游戏被解散未分出胜负 06 … Continue reading