精易论坛
标题:
简单取文本差异
[打印本页]
作者:
cf2006a
时间:
2019-6-1 21:56
标题:
简单取文本差异
本帖最后由 cf2006a 于 2019-6-1 22:02 编辑
子程序名
返回值类型
公开
备 注
文本_差异
文本型
返回 差异化位置文本这里用空格填充 加 相同文本
参数名
类 型
参考
可空
数组
备 注
参_文本1
文本型
做对比用
参_文本2
文本型
返回的是文本2的填充文本
变量名
类 型
静态
数组
备 注
缓冲区
文本型
缓冲区 =
取空白文本
(
取文本长度
(
参_文本2
)
)
置入代码
(
{
139, 125, 8, 139, 63, 139, 93, 12, 139, 27, 49, 210, 49, 246, 138, 12, 55, 138, 44, 19, 128, 249, 0, 116, 17, 70, 128, 253, 0, 116, 15, 56, 233, 117, 235, 86, 136, 44, 16, 66, 235, 228, 94, 66, 235, 224, 198, 4, 16, 0, 88
}
)
返回
(
缓冲区
)
.版本 2
.子程序 文本_差异, 文本型, 公开, 返回 差异化位置文本这里用空格填充 加 相同文本
.参数 参_文本1, 文本型, , 做对比用
.参数 参_文本2, 文本型, , 返回的是文本2的填充文本
.局部变量 缓冲区, 文本型
缓冲区 = 取空白文本 (取文本长度 (参_文本2))
置入代码 ({ 139, 125, 8, 139, 63, 139, 93, 12, 139, 27, 49, 210, 49, 246, 138, 12, 55, 138, 44, 19, 128, 249, 0, 116, 17, 70, 128, 253, 0, 116, 15, 56, 233, 117, 235, 86, 136, 44, 16, 66, 235, 228, 94, 66, 235, 224, 198, 4, 16, 0, 88 })
返回 (缓冲区)
mov edi, dword [ebp+0x08]
mov edi, dword [edi]
mov ebx, dword [ebp+0x0C]
mov ebx, dword [ebx]
xor edx, edx
xor esi, esi
Label3:
mov cl, byte [edi+esi]
mov ch, byte [ebx+edx]
cmp cl, 0x00
je Label1
inc esi
cmp ch, 0x00
je Label2
cmp cl, ch
jne Label3
push esi
mov byte [eax+edx], ch
inc edx
jmp Label3
Label1:
pop esi
inc edx
jmp Label3
Label2:
mov byte [eax+edx], 0x00
pop eax
这里是这样 比较的 如 文本1 12343356 文本2 335
文本2 3 在这里出现所以匹配 文本2移到第二个3 类推 文本一走到3 就不会往回匹配只能向后匹配
所以算法还无法达到满意的效果 看看大家有什么方法说来听听
作者:
atglkm123
时间:
2019-6-1 22:20
汇编大佬就是牛
作者:
全村最帅
时间:
2019-6-1 22:48
大佬的光芒,让我睁不开眼
作者:
10008508
时间:
2019-6-2 11:47
言,将来必成大佬
作者:
shituo
时间:
2019-6-2 20:25
让我想起了 字库文本的相似度对比,
作者:
sampo
时间:
2019-6-2 20:29
感谢楼主分享经验
作者:
wjswzj0
时间:
2019-6-4 15:06
感谢分享,很给力!~
作者:
wjswzj0
时间:
2019-6-4 15:06
感谢分享,很给力!~
作者:
一米七五
时间:
2019-6-4 19:42
默默飘过 看看就好了
作者:
xiaoniu1230
时间:
2019-6-6 14:40
支持开源~!感谢分享
作者:
young1996
时间:
2019-6-13 15:11
回复回复回复
作者:
shituo
时间:
2023-6-22 07:35
可以返回 差异值的数量吗?
作者:
2424544044
时间:
2023-6-22 07:52
支持开源~!感谢分享
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4