|
发表于 2024-10-28 19:07:58
|
显示全部楼层
辽宁省丹东市
.版本 2
.支持库 commobj
.子程序 大文本去重复比对, , 公开, 取重复后比对
.参数 文本A, 文本型
.参数 文本B, 文本型
.参数 分隔符, 文本型, 可空, 默认为换行符
.参数 返回去重后文本A, 文本型, 可空
.参数 返回去重后文本B, 文本型, 可空
.参数 返回两文本重复部分, 文本型, 可空 数组
.局部变量 文本组, 文本型, , "0"
.局部变量 i, 整数型
.局部变量 输入, 快速文本对象
.局部变量 A去重, 快速文本对象
.局部变量 B去重, 快速文本对象
.局部变量 哈希A, 哈希表_ASM
.局部变量 哈希B, 哈希表_ASM
.如果真 (文本A = “” 或 文本B = “”)
返回 ()
.如果真结束
.如果真 (分隔符 = “”)
分隔符 = #换行符
.如果真结束
清除数组 (返回两文本重复部分)
哈希A.创建 (#文本型, #整数型, 25) ' 2的25次方除以1024 ' 32MB容量
哈希B.创建 (#文本型, #整数型, 25)
输入.置文本 (文本A)
文本组 = 输入.分割文本 (分隔符, )
.计次循环首 (取数组成员数 (文本组), i)
.如果真 (哈希A.cha询 (文本组 [i]) = 假)
哈希A.添加 (文本组 [i], 0)
A去重.添加 (文本组 [i], 分隔符)
.如果真结束
.计次循环尾 ()
清除数组 (文本组)
输入.置文本 (文本B)
文本组 = 输入.分割文本 (分隔符, )
输入.清除文本 ()
.计次循环首 (取数组成员数 (文本组), i)
.如果真 (哈希B.cha询 (文本组 [i]) = 假)
哈希B.添加 (文本组 [i], 0)
B去重.添加 (文本组 [i], 分隔符)
.如果真结束
.计次循环尾 ()
清除数组 (文本组)
文本组 = B去重.分割文本 (分隔符, )
.计次循环首 (取数组成员数 (文本组), i)
.如果真 (哈希A.cha询 (文本组 [i]) = 真)
加入成员 (返回两文本重复部分, 文本组 [i])
.如果真结束
.计次循环尾 ()
哈希A.清空 ()
哈希B.清空 ()
返回去重后文本A = A去重.取文本 (, )
返回去重后文本B = B去重.取文本 (, )
|
|