xxxcondor 发表于 2019-9-4 14:06:16

求个把多行文字中比如30+30+30自动改写为3*30这种写法的插件,求大神出手,救救孩!

本帖最后由 xxxcondor 于 2019-9-26 14:15 编辑


satan421 发表于 2019-9-5 08:26:18

你描述的太不清楚了,是只有形如30+30+30这种的吗?有没有30+30+45的?有没有30+30+30*2的?诸如此类。传个样图或者截图,别人也好理解。

xxxcondor 发表于 2019-9-8 09:02:34

satan421 发表于 2019-9-5 08:26
你描述的太不清楚了,是只有形如30+30+30这种的吗?有没有30+30+45的?有没有30+30+30*2的?诸如此类。传个 ...
只把多行文字中相同的数字用乘式的形式表示C:\Users\Administrator\Desktop\1.jpg

xxxcondor 发表于 2019-9-16 16:02:06

自己顶一下了,没人来了,沉了么?

xxxcondor 发表于 2019-9-26 14:13:52

顶起来呀,顶起来

sharetow 发表于 2019-12-11 23:28:28

这样吗?

(defun c:tt(/ text lst aa e1 b)
(setq text "pm=30+30+30+44+44+44+44"
    lst '()
)
(if (vl-string-position (ascii "=") text)
    (progn
      (setqe1 (vl-string-position (ascii "=") text))
      (setqdx (strcat (substr text 1 e1) "="))
      (setqaa (substr text (+ e1 2)))
    )
)
(while
    (vl-string-position (ascii "+") aa)
    (setqe1 (vl-string-position (ascii "+") aa))
    (setqb (substr aa 1 e1))
    (setq lst (cons b lst))
    (setqaa (substr aa (+ e1 2)))
)
(setq lst (cons aa lst))
(while
    (/= lst nil)
    (setq aa (nth 0 lst)
      lst1 lst
    )
    (setq lst(vl-remove aa lst))
    (setq dx (strcat dx (itoa (- (length lst1)(length lst))) "*" aa "+"))
)
)

xxxcondor 发表于 2019-12-16 09:04:07

sharetow 发表于 2019-12-11 23:28


谢谢您的回复,我想要的是所有类似情况的数字都自动改写为乘式的形式,您这个好像是只有特定的数字才能改为乘式

sharetow 发表于 2019-12-16 10:16:49

xxxcondor 发表于 2019-12-16 09:04
谢谢您的回复,我想要的是所有类似情况的数字都自动改写为乘式的形式,您这个好像是只有特定的数字才能改 ...

。。。。那你提问题要给所有可能发生的情况都说明

s305040093 发表于 2019-12-18 14:43:57

哈哈。这需求太简单。你你把这5个币给我吧。我给场景,你看是否相同:首先按照=分割字符串,然后在每个分割后的字符串中再使用+分割字符串,然后按照数字大小排序,再合并相同的数字。最后再拼回原字符串,是否就是你要的效果?

ninja37 发表于 2020-1-2 22:32:30

多行文字中相同的数字用乘式的形式表示这个有什么用啊
页: [1] 2
查看完整版本: 求个把多行文字中比如30+30+30自动改写为3*30这种写法的插件,求大神出手,救救孩!