如何把多行文字中指定字符替换为换行符,如下文中的YYYYYYY
2.00~8.50mYYYYYYY块石土:灰褐色、淡黄色,松散,稍湿~湿,块石成分以中风化砂岩块石为主,呈棱角状,粒径组成:20~200mm约占15%,>200mm约占68%,其余为粉质粘土充填,粉质粘土呈可塑状,土质不均匀。8.50~9.20mYYYYYYY含碎石粉质粘土:灰褐色、灰黄色,可塑状,稍湿,具粘性,手可搓成条,干强度、韧性中等,摇震无反应。含碎、砾石约33%,粒径为35~60mm,多为砂岩,碎、砾石有一定磨圆度,呈次棱角状,土质较均匀。提供了三种方式(Alisp,Vlisp,ActiveX),并比较了下替换效率,供你参考
三个函数定义在附件中
(defun c:tt()
(gc)
;;加入了一些YYYY干扰项做测试
(setq str
"2.00~8.50mYYYYYYY块石土:灰褐色、淡黄色,松散,YYYY稍湿~湿,块石成分以中风化砂岩块石为主,呈棱角状,粒径组成:20~200mm约占15%,>200mm约占68%,其余为粉质粘土充填,粉质粘土呈可塑状,土质不均匀。8.50~9.20mYYYYYYY含碎石粉质粘土:灰褐色、灰黄色,可YYYY塑状,稍湿,具粘性,手可搓成条,干强度、韧性中等,摇震无反应。含碎、砾石约33%,粒径为35~60mm,多为砂岩,碎、砾石有一定磨圆度,呈次棱角状,土质较均匀。"
)
;;strreplace (Alisp)
;;STRING-SUBST-ALL (Vlisp)
;;xxexpr (ActiveX)
(benchmark '((strreplace "\n" "YYYYYYY" str) (STRING-SUBST-ALL "\n" "YYYYYYY" str) (xxexpr "Y{7}" str "\n" "")))
)
Elapsed milliseconds / relative speed for 65536 iteration(s):
(STRING-SUBST-ALL "\n" "YYYYYYY" STR)......1919 / 51.41 <fastest>
(XXEXPR "Y{7}" STR "\n" "")...............11014 / 8.96
(STRREPLACE "\n" "YYYYYYY" STR)...........98655 / 1 <slowest>
自定义 添加或替换“\n”换行符,学习了。 学习一下。感觉文字替换多数时候还是cad内部的枚举花的时间为主 EXCEL复制进CAD的表格老是出现引号,后面才发现是EXCEL表里面有换行符,我看看能不能通过把EXCEL里的换行符换成指定的符号,复制进CAD后,再把这个指定符号换成换号符来达到我的目的。
页:
[1]