易语言 【寻找文本】命令的bug

最近在重写易语言模块的时候,在取子文本操作时老是出错,经常出现一些奇怪的问题,一开始以为是代码问题,可是找半天硬是找不到问题所在。

于是进入了找bug模式,这么几行代码,看了我半个小时,左改右改,总感觉没问题。

但是吧,总是找不到原因,不设置起始搜寻位置是没问题的,但是一加上并且设置成偶数,寻找汉字就总是找不到。脑子进入了三个黑人问号的懵逼模式。

后来仔细想想,在易语言里,一个汉字是两个字节,会不会跟这个有关。于是开始了我的实验。

嗯,开始运行。

惊不惊喜!意不意外!

WTF!??哪来的海?怀着CNM的心情,又看了一次。

这次看看字节集是什么内容,看看这片海到底是钻出来的还是哭出来的。

找到原因了,原来寻找的时候是按单字节算的。。

好的,那继续。

我突然又想到另一个可能的bug。于是又进行了一次测试。

按理来说,第八个位置是院的后一半,后面两个感叹号,不管怎样都能找到一个吧,让我们来看看结果。

WTF???

看到了吧,由此可见,这真的是bug,不是理解上的问题,个人估计是易语言在文本查找算法上的bug,每次跳动了两个字节进行了匹配,所以如果是从第八个字节开始匹配,那确实永远匹配不到。

所以,爬坑结束,就这样吧,以后还是少用起始搜寻位置吧,有时候找不到文本也许并不是因为你要找的文本不在里面,而是。这命令有毒。。

 

posted @ 2017-09-20 23:37  弗兰克的猫  阅读(1973)  评论(0编辑  收藏  举报