精易论坛

标题: 5种子文本替换。 [打印本页]

作者: 果心豆腐酱    时间: 2024-3-28 18:50
标题: 5种子文本替换。
本帖最后由 果心豆腐酱 于 2024-4-2 17:10 编辑


在不使用多线程的情况下,第一种汇编,使用寻找文本_汇编的方式,进行遍历匹配替换,最快。
第二种纯汇编代码替换就慢了些许
汇编很快,但是不能在线程里和使用,会闪退。

能在多线程里使用的三种方式里,如果文本长度在500以内,长度越小核心库的子文本替换越快。



如果在多线程里使用,可以考虑提取文本内容的长度,来判断使用子文本替换或者快速文本对象替换。

2024-03-29新编辑,在模块里用线程,汇编直接崩溃。如果在窗口程序,线程使用灰白你,用作替换的文本长度超过32,就会崩溃,小于32,在线程里使用正常。
原因我也不知道,解决方法我也不知道,因为汇编不是我写的2024-04-02编辑,修改子文本替换_汇编的替换次数判断逻辑(),原代码需要提供替换次数。
AsmMoudle.e (1.22 MB, 下载次数: 60)

















作者: 447485268    时间: 2024-3-28 22:25
支持开源~!感谢分享
作者: accet    时间: 2024-3-28 23:29
  
用作替换内容 = “ASDJ:::::|||||”
内容 = 子文本替换_汇编2 (用作替换内容, “:”, “::”, , )
内容 = 子文本替换_汇编2 (内容, “|”, “||”, , )


试试什么效果.

作者: 笨来无一悟    时间: 2024-3-29 01:14
汇编崩会不会是没有平栈导致的?
作者: 果心豆腐酱    时间: 2024-3-29 03:47
本帖最后由 果心豆腐酱 于 2024-3-29 04:48 编辑
accet 发表于 2024-3-28 23:29
  
用作替换内容 = “ASDJ:::::|||||”
[/quote]
[img]https://pic.imgdb.cn/item/6605c9119f345e8d033ad81e.png[/img]
[e=3].版本 2
子程序名返回值类型公开备 注
子文本替换_汇编文本型 不可在多线程内使用,会闪退
参数名类 型参考可空数组备 注
欲被替换的文本文本型
欲被替换的子文本文本型
用作替换的子文本文本型
进行替换的起始位置整数型
替换进行的次数整数型
是否区分大小写逻辑型该参数无效,默认区分大小写。
变量名类 型静态数组备 注
内容文本型 
替换位置整数型 
a整数型 
替换长度整数型 
用作替换长度整数型 
局_欲被替换的文本文本型 
替换长度 = 取文本长度_汇编 (欲被替换的子文本)
用作替换长度 = 取文本长度_汇编 (用作替换的子文本)
局_欲被替换的文本 = 欲被替换的文本
计次循环首 (替换进行的次数, )
替换位置 = 寻找文本_ASM (局_欲被替换的文本, 欲被替换的子文本, 进行替换的起始位置, , )
判断 (替换位置 = -1)
跳出循环 ()
局_欲被替换的文本 = 文本替换_汇编 (局_欲被替换的文本, 替换位置, 替换长度, 用作替换的子文本)

进行替换的起始位置 = 替换位置 + 用作替换长度
计次循环尾 ()
返回 (局_欲被替换的文本)



作者: 果心豆腐酱    时间: 2024-3-29 04:49
accet 发表于 2024-3-28 23:29
[e=0].版本 2

用作替换内容 = “ASDJ:::::|||||”


作者: 果心豆腐酱    时间: 2024-3-29 04:49
accet 发表于 2024-3-28 23:29
[e=0].版本 2

用作替换内容 = “ASDJ:::::|||||”


作者: 果心豆腐酱    时间: 2024-3-29 05:13
笨来无一悟 发表于 2024-3-29 01:14
汇编崩会不会是没有平栈导致的?

不知道你说的啥,原因是什么我也不知道,我只知道,用作替换的内容,在窗口程序里长度超过32就会崩溃。在模块里直接崩溃。

汇编代码我不懂,也修复不了。
作者: accet    时间: 2024-3-29 05:16
笨来无一悟 发表于 2024-3-29 01:14
汇编崩会不会是没有平栈导致的?

是程序内存超过2G 爆了.
他那个 子文本替换_汇编2 永远在替换第一个; 所以越来越大..
作者: accet    时间: 2024-3-29 05:18
本帖最后由 accet 于 2024-3-29 05:20 编辑

改了就行了.
有时候有些步骤是真不能省略.  不然鬼知道用户会输入什么.还有既然要搞得快. 再把 加法 那里 也改成汇编好了.

作者: 果心豆腐酱    时间: 2024-3-29 05:20
accet 发表于 2024-3-29 05:16
是程序内存超过2G 爆了.
他那个 子文本替换_汇编2 永远在替换第一个; 所以越来越大.. ...

崩溃跟这个没关系。
作者: 小虎来了    时间: 2024-3-29 08:58
感谢分享,很给力!~
作者: xx1231    时间: 2024-3-29 09:33
学习,感谢分享!!
作者: kanhaiyouyue    时间: 2024-3-29 09:34
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: kanhaiyouyue    时间: 2024-3-29 09:36
继续优化汇编,还有很大提升空间
作者: pt1314    时间: 2024-3-29 10:27
支持开源~!感谢分享
作者: zifeiyu    时间: 2024-3-29 12:27
666666666666666666
作者: 网络注册会员    时间: 2024-3-29 14:29
        感谢分享
作者: yangdoudou    时间: 2024-3-29 15:07
感谢分享,很给力!~
作者: 深圳梦    时间: 2024-3-29 19:29
感谢分享,很给力!~
作者: year1970    时间: 2024-3-29 19:36
感谢分享
作者: 亿万    时间: 2024-3-29 20:30
感谢分享
作者: 小磊88    时间: 2024-3-29 21:44
牛皮,支持,谢谢分享。
作者: 凌哥    时间: 2024-3-29 22:21
本帖最后由 凌哥 于 2024-3-29 22:24 编辑



作者: asd2168972    时间: 2024-3-29 22:22
6666666666
作者: 果心豆腐酱    时间: 2024-3-29 22:35

不销毁,是不是会崩?
作者: 果心豆腐酱    时间: 2024-3-29 22:36

线程里替换长度超过32,会崩么?

作者: 凌哥    时间: 2024-3-30 00:30
果心豆腐酱 发表于 2024-3-29 22:36
线程里替换长度超过32,会崩么?

我自己写的怎么可能会有这种不可控的问题
作者: ZHuanR    时间: 2024-3-30 04:21
新技能已get√
作者: 396384183    时间: 2024-3-31 09:59
感谢分享
作者: change2018    时间: 2024-4-1 10:13
速度真快!!!!!!!
作者: 光影魔术    时间: 2024-4-1 13:08
感谢分享
作者: bysy    时间: 2024-4-2 12:46
bug
作者: 果心豆腐酱    时间: 2024-4-2 17:07
  
子程序名返回值类型公开备 注
子文本替换_汇编文本型 不可在多线程内使用,会闪退
参数名类 型参考可空数组备 注
欲被替换的文本文本型
欲被替换的子文本文本型
用作替换的子文本文本型
进行替换的起始位置整数型
替换进行的次数整数型
是否区分大小写逻辑型该参数无效,默认区分大小写。
变量名类 型静态数组备 注
内容文本型 
替换位置整数型 
a整数型 
替换长度整数型 
用作替换长度整数型 
局_欲被替换的文本文本型 
b整数型 
逻辑型 
替换长度 = 取文本长度_汇编 (欲被替换的子文本)
用作替换长度 = 取文本长度_汇编 (用作替换的子文本)
局_欲被替换的文本 = 欲被替换的文本
判断 (是否为空 (替换进行的次数))
空 = 真


判断循环首 (a = 0)
判断 (替换进行的次数 ≤ b 空 = )
跳出循环 ()


替换位置 = 寻找文本_ASM (局_欲被替换的文本, 欲被替换的子文本, 进行替换的起始位置, , )判断 (替换位置 = -1)
跳出循环 ()
局_欲被替换的文本 = 文本替换_汇编 (局_欲被替换的文本, 替换位置, 替换长度, 用作替换的子文本)

进行替换的起始位置 = 替换位置 + 用作替换长度
b = b + 1
判断循环尾 ()
返回 (局_欲被替换的文本)


作者: 不苦小和尚    时间: 2024-4-7 19:44
子文本替换_汇编2 也会崩溃
作者: lxz159464    时间: 2024-4-18 03:48
虚函数HOOK
作者: lyjzyq    时间: 2024-4-19 16:16
6666666666666666666666
作者: SSS777    时间: 2024-4-28 01:07

没找到你截图中的 子文本替换_Airuan()
能方便提供吗?
作者: SSS777    时间: 2024-4-28 02:05
取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
不过:
取文本长度< 33 ,应该是用核心库的 子文本替换()还是 子文本替换_汇编()?


作者: SSS777    时间: 2024-4-28 02:07
SSS777 发表于 2024-4-28 02:05
取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
不过:
取文本长度< 33 ,应该是用核心库的 ...

[JavaScript] 纯文本查看 复制代码
.版本 2

.判断开始 (取文本长度(欲被替换的文本) < 33)
    子文本替换_汇编 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)

.判断 (取文本长度(欲被替换的文本) > 550)
    结果 = 子文本替换_快速_文本 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)
.默认
    结果 = 子文本替换 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)
.判断结束


作者: k420    时间: 2024-4-28 02:19
开源精神必须支持~
作者: l88i    时间: 2024-5-5 11:00
还厉害了
作者: lm88818    时间: 2024-5-21 14:55
感谢分享,很给力!~
作者: 默念、    时间: 2024-7-30 13:09
accet 发表于 2024-3-28 23:29
[e=0].版本 2

用作替换内容 = “ASDJ:::::|||||”

用这个测试 汇编1 确实会崩溃 但是 汇编2没事
作者: 默念、    时间: 2024-7-30 17:38
SSS777 发表于 2024-4-28 02:05
取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
不过:
取文本长度< 33 ,应该是用核心库的 ...

取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
也没有 汇编的快吧??我测试的
作者: 小菜鸟一只    时间: 2024-8-11 10:38
谢谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4