最近在重写易语言模块的时候,在取子文本操作时老是出错,经常出现一些奇怪的问题,一开始以为是代码问题,可是找半天硬是找不到问题所在。
于是进入了找bug模式,这么几行代码,看了我半个小时,左改右改,总感觉没问题。
但是吧,总是找不到原因,不设置起始搜寻位置是没问题的,但是一加上并且设置成偶数,寻找汉字就总是找不到。脑子进入了三个黑人问号的懵逼模式。
后来仔细想想,在易语言里,一个汉字是两个字节,会不会跟这个有关。于是开始了我的实验。
嗯,开始运行。
惊不惊喜!意不意外!
WTF!??哪来的海?怀着CNM的心情,又看了一次。
这次看看字节集是什么内容,看看这片海到底是钻出来的还是哭出来的。
找到原因了,原来寻找的时候是按单字节算的。。
好的,那继续。
我突然又想到另一个可能的bug。于是又进行了一次测试。
按理来说,第八个位置是院的后一半,后面两个感叹号,不管怎样都能找到一个吧,让我们来看看结果。
WTF???
看到了吧,由此可见,这真的是bug,不是理解上的问题,个人估计是易语言在文本查找算法上的bug,每次跳动了两个字节进行了匹配,所以如果是从第八个字节开始匹配,那确实永远匹配不到。
所以,爬坑结束,就这样吧,以后还是少用起始搜寻位置吧,有时候找不到文本也许并不是因为你要找的文本不在里面,而是。这命令有毒。。
真正重要的东西,用眼睛是看不见的。