likai1121 发表于 2017-11-4 23:32:00

如何把多行文字中指定字符替换为换行符,如下文中的YYYYYYY

2.00~8.50mYYYYYYY块石土:灰褐色、淡黄色,松散,稍湿~湿,块石成分以中风化砂岩块石为主,呈棱角状,粒径组成:20~200mm约占15%,>200mm约占68%,其余为粉质粘土充填,粉质粘土呈可塑状,土质不均匀。8.50~9.20mYYYYYYY含碎石粉质粘土:灰褐色、灰黄色,可塑状,稍湿,具粘性,手可搓成条,干强度、韧性中等,摇震无反应。含碎、砾石约33%,粒径为35~60mm,多为砂岩,碎、砾石有一定磨圆度,呈次棱角状,土质较均匀。

fools 发表于 2017-11-5 11:57:49

提供了三种方式(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>

Helix.xu 发表于 2018-4-23 15:59:09

自定义 添加或替换“\n”换行符,学习了。

CAD新军 发表于 2019-3-23 11:03:11

学习一下。感觉文字替换多数时候还是cad内部的枚举花的时间为主

gxh94 发表于 2019-11-20 16:15:38

EXCEL复制进CAD的表格老是出现引号,后面才发现是EXCEL表里面有换行符,我看看能不能通过把EXCEL里的换行符换成指定的符号,复制进CAD后,再把这个指定符号换成换号符来达到我的目的。
页: [1]
查看完整版本: 如何把多行文字中指定字符替换为换行符,如下文中的YYYYYYY