找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 391|回复: 6

(完成)[编程申请]:如何把“散开的字符串合并成一段句子”?

[复制链接]
发表于 2003-8-3 12:23:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何把“散开的字符串合并成一段句子”?散开的字符串用“C”“W”等选取?哪位大师能提供此类程序呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-3 12:42:31 | 显示全部楼层
这个程序是以X坐标控制的合并方式:X坐标小的合并的时候在前面。

  1.   [FONT=courier new]
  2. ((defun c:ljwb1()
  3.   (setvar "cmdecho"0)
  4.   (command "undo" "group")
  5.   (setq result "")
  6.   (princ"\n请选择要连接的文本:")
  7.   (setq a (ssget '((0 . "TEXT"))))
  8.   (setq n (sslength a))
  9.   (setq nnn (1- n))
  10.   (setq number 0 nn 0)
  11.   (repeat n
  12.     (setq a1 (ssname a number))                     
  13.     (setq a11 (entget a1))                          
  14.     (setq a_x (cadr (assoc 10 a11)))               
  15.     (if (= nn 1)
  16.        (progn
  17.          (if (< a_x x)
  18.            (progn
  19.              (setq x a_x xold a_x)
  20.              (setq text (cdr (assoc 1 a11)))
  21.            )
  22.          )
  23.        )
  24.        (progn
  25.           (setq nn 1 x a_x xold a_x)
  26.           (setq text (cdr (assoc 1 a11)))
  27.        )
  28.     )
  29.     (setq number (1+ number))
  30.   )
  31.   (setq result (strcat result text))
  32.   (repeat nnn
  33.     (setq number 0 nn 0 dx 0 a_x 0)
  34.     (repeat n
  35.       (setq a1 (ssname a number))
  36.       (setq a11 (entget a1))                          
  37.       (setq b_x (cadr (assoc 10 a11)))               
  38.       (if (= nn 1)
  39.          (setq a_x (- b_x x))
  40.       )
  41.       (if (and (> b_x x) (= nn 0))
  42.          (setq dx (- b_x x) nn 1 c11 a11 a_x_new b_x)
  43.       )
  44.       (if (and (> a_x 0) (< a_x dx))
  45.         (setq dx a_x c11 a11 a_x_new b_x)
  46.       )
  47.       (setq number (1+ number))
  48.     )
  49.     (setq text (cdr (assoc 1 c11)))
  50.     (setq result (strcat result text))
  51.     (setq x a_x_new)
  52.   )
  53.   (setq result (cons 1 result))                  
  54.   (setq number 0)
  55.   (repeat n
  56.     (setq a1 (ssname a number))                     
  57.     (setq a11 (entget a1))                           
  58.     (setq a_x (cadr (assoc 10 a11)))               
  59.     (if (= a_x xold)
  60.       (setq result (subst result (assoc 1 a11) a11))  
  61.       (entdel a1)
  62.     )
  63.     (setq number (1+ number))
  64.   )
  65.   (entmod result)                             
  66.   (command "undo" "end")
  67.   (setvar"cmdecho"1)
  68.   (princ)
  69. ))  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-3 12:45:37 | 显示全部楼层
这个程序是以Y坐标来控制的合并方式,Y坐标大的放在前面。这两个程序将文本合并以后会删除其他文本,只保留一个文本。

  1.   [FONT=courier new]
  2. (defun c:ljwb2()
  3.   (setvar "cmdecho"0)
  4.   (command "undo" "group")
  5.   (setq result "")
  6.   (princ"\n请选择要连接的文本:")
  7.   (setq a (ssget '((0 . "TEXT"))))
  8.   (setq n (sslength a))
  9.   (setq nnn (1- n))
  10.   (setq number 0 nn 0)
  11.   (repeat n
  12.     (setq a1 (ssname a number))                     
  13.     (setq a11 (entget a1))                           
  14.     (setq a_y (caddr (assoc 10 a11)))               
  15.     (if (= nn 1)
  16.        (progn
  17.          (if (> a_y y)
  18.            (progn
  19.              (setq y a_y yold a_y)
  20.              (setq text (cdr (assoc 1 a11)))
  21.            )
  22.          )
  23.        )
  24.        (progn
  25.           (setq nn 1 y a_y yold a_y)
  26.           (setq text (cdr (assoc 1 a11)))
  27.        )
  28.     )
  29.     (setq number (1+ number))
  30.   )
  31.   (setq result (strcat result text))
  32.   (repeat nnn
  33.     (setq number 0 nn 0 dy 0 a_y 0)
  34.     (repeat n
  35.       (setq a1 (ssname a number))
  36.       (setq a11 (entget a1))                           
  37.       (setq b_y (caddr (assoc 10 a11)))               
  38.       (if (= nn 1)
  39.          (setq a_y (- b_y y))
  40.       )
  41.       (if (and (< b_y y) (= nn 0))
  42.          (setq dy (- b_y y) nn 1 c11 a11 a_y_new b_y)
  43.       )
  44.       (if (and (< a_y 0) (> a_y dy))
  45.         (setq dy a_y c11 a11 a_y_new b_y)
  46.       )
  47.       (setq number (1+ number))
  48.     )
  49.     (setq text (cdr (assoc 1 c11)))
  50.     (setq result (strcat result text))
  51.     (setq y a_y_new)
  52.   )
  53.   (setq result (cons 1 result))                  
  54.   (setq number 0)
  55.   (repeat n
  56.     (setq a1 (ssname a number))                     
  57.     (setq a11 (entget a1))                           
  58.     (setq a_y (caddr (assoc 10 a11)))               
  59.     (if (= a_y yold)
  60.       (setq result (subst result (assoc 1 a11) a11))  
  61.       (entdel a1)
  62.     )
  63.     (setq number (1+ number))
  64.   )
  65.   (entmod result)                             
  66.   (command "undo" "end")
  67.   (setvar"cmdecho"1)
  68.   (princ)
  69. )  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-3 12:53:28 | 显示全部楼层
搂主能否说说有何使用价值?或贴个图看看?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-3 12:54:00 | 显示全部楼层

Re: [LISP函数]:[编程申请]:如何把“散开的字符串合并成一段句子”?

最初由 chhm 发布
[B]如何把“散开的字符串合并成一段句子”?散开的字符串用“C”“W”等选取?哪位大师能提供此类程序呢? [/B]


晓东工具箱,文字工具-按行连接


下载地址:http://www.xdcad.net/techcenter/ ... 3_xdtb_txt_zxmh.swf

<embed src=http://www.xdcad.net/techcenter/upload/file/1_20030730221623_xdtb_txt_zxmh.swf quality=high width=800 height=600 loop=true type="application/x-shockwave-flash">
</embed>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-3 14:26:18 | 显示全部楼层
多谢版主
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-5 17:16:27 | 显示全部楼层
找了好久,终于找到了,以前的东东都不按照坐标排序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-6 11:42 , Processed in 0.333826 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表