将文本字符串拆分为45个字符
我们有一些文本对象,有像500个字符的长文本字符串,所以我需要一个lisp,可以分割成45-45个字符的文本,使他们分开45个字符的对象。原因是我们必须在其他软件中导出文本,并且该软件不支持超过45个字符串。所以现在我们正在手动吐它们。 简单使用(substr new_line X Y),其中X是开始,Y是你的情况下的字符数Y=45 X=1 X=46等等,你只需要(重复一次,一行中的字符数除以45,最后一个Y是平衡。我没有文本字符的长度回答有人会帮助,然后代码很简单。 我是lisp新手,请你为我编码。长度可能会有所不同。我们可以通过选择来获得字符串长度。 找到它STRLEN字符串如果我能找到一些时间会做得很容易,但需要知道如何处理45个长文本你想把答案导出到一个文本文件,在cad的文本行?您正在选择多个文本吗? 请找到我实际需要的示例附件。谢谢
这将把它放在一个列表中:
(defun c:test ()
(setq str "This is a test of a function to divide a long string in a series of shoter string.The new shorter string must be a maximum of 45 characters.The OP has not specified if the new string must be separated on a logical break like SPACE or punctuation mark.Anyway here goes")
; Here without logical separation;
(setq x 1 len 45 strlst nil strlst2 nil)
(repeat (+ (/ (strlen str) 45) 1)
(setq strlst (cons (substr str x (- len 1)) strlst)
x (+ x len -1)
)
)
(setq strlst (reverse strlst))
(foreach s strlst
(print s)
)
)
在之前删除字符串的任何“\n”可能是一个好主意
到处理。
ymg公司 ymg3同样的想法,如果在一行上,不同的文本样式和单词使正确分开相当困难,因为文本将重叠或有不同的间距。
逐行最简单,在(打印S)添加pick pt、text ht,然后调整XY添加文本。现在轮到你了。 谢谢你们俩。
但代码实际上并不是我所需要的。代码应该首先要求选择文本,然后拆分它。 我没有完全理解你,先生,你到底想说什么。 上载带有前后处理的示例图形。
页:
[1]
2