找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 476|回复: 3

[求助] [求助]:如何判断文字的完整性呢?

[复制链接]
发表于 2006-4-26 19:01:13 | 显示全部楼层 |阅读模式

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

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

×
[0426][求助]:如何判断文字的完整性呢?
小弟想做一个切断文字内容的程序,
但由于中文字是两个字元组成一个单位,
在判断时不像英文方便,
若要处里这程序,
该怎样做会比较好呢?

烦请各位高手帮忙解答一下~
谢谢~

内容程序:
(setq p_es1 (entsel "\n 选取文字:"))
(setq p_eg1 (entget (car p_es1)))
(setq p_1   (cdr (assoc 1 p_eg1)))  ;文字内容 dxf .1
(setq p_10  (cdr (assoc 10 p_eg1))) ;文字内容 dxf .10  
(setq p_len (strlen p_1))
(command "ucs" "e" p_es1)
(setq box (textbox p_eg1))
(setq p1 (car box))
(setq p3 (cadr box))
(setq p2 (list (car p3) (cadr p1)))
(setq p4 (list (car p1) (cadr p3)))
(setq t_wa  (distance p1 p2 ) ) ;文字总长
(setq t_w1  (/ t_wa p_len) )    ;一字宽
(setq p_gpd (getpoint p1 "\n 新文字的位置:" ) )
(setq t_wb  (distance p1 p_gpd ) ) ;第二段文字长
(setq t_wn  (atoi (rtos (/ t_wb t_w1 ) 2 2) ) ) ;取出文字数目值
(setq ang   (ANGLE p1 p_gpd))
(setq p_1f  (substr p_1 1 t_wn) ) ;前段文字
(setq p_1b  (substr p_1 (1+ t_wn) ) )  ;后段文字
(command "ucs" "")

测试: "外观立面造型(主出入口)"
结果:
"外观立面造?
"?主出入口)"
=>断点在字元的中间时,不完整的句子

"外观立面造型(主"
"出入口)"
=>断点在字元的间格时,完整的句子
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-26 22:38:55 | 显示全部楼层
西文和汉字的ascii值是不一样的,可根据此编写判断提取字符是中文还是西文子程序(该程序论坛上就有)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-26 22:54:24 | 显示全部楼层
请问楼主说的"判断提取字符"
这文章的连结可以给一下吗?
谢谢~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-26 23:17:32 | 显示全部楼层
时间长了,链接已记不清,我把相关的代码贴一下吧!
[B][php]
;;;字体识别
(defun c:ztsb()
  (setq tt (dxf 7 (entget (car (entsel)))))
  (if (= tt "eng")(alert "英文!"))
  (if (= tt "chn")(alert "中文!"))
)
(defun dxf (code elist) (cdr (assoc code elist)))  

判断字体:
(defun c:tt()
  (if(= ""(cdr(assoc 4(tblsearch "style"(cdr(assoc 7(entget(car(entsel)))))))))
    (princ "English")
    (princ "Chinese")
  )
  (princ)
)

字符里有没有中文:

代码:

(defun check-china(str)
  (apply 'or (mapcar '(lambda(x)(> x 159))(vl-string->list str)))
)[/php] [/B]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 06:58 , Processed in 0.351418 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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