明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4908|回复: 2

求助 忽略展开 未知异常

[复制链接]
发表于 2012-1-10 18:50:51 | 显示全部楼层 |阅读模式
(wcmatch (substr "上海"1 1)(strcat "`" (substr "上海"1 1) "*"))
这段话在cad2006能通过 在cad2012下出现错误提示
错误: 发生未知意外
; 警告: 忽略展开 未知异常
我是想判断是否为汉字 如果是汉字则替换两个字符


该贴已经同步到 brainstorm的微博
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-6-1 09:37:49 | 显示全部楼层
本帖最后由 革天明 于 2012-6-1 09:38 编辑

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=79052&replyID=&skin=0
在显示较长的英汉(含全角字符)混合的字符串时,可能会分割成几个字符串进行显示。每个英文字母或符号的长度是1,而中文或全角字符的长度是2,用substr分割子串时,可能会将一个长度为2中文或全角字符从中间分开,造成显示为乱码(或出现“ ; error: Unknown exception occurred ; warning: unwind skipped on unknown exception”的错误)。

  因此,分割这类字串前,有必要分割处是否是中文或全角字符。下面是我在程序中使用的函数:

(defun Integrated (str i / lst)
  (setq lst (vl-string->list (substr str 1 i))
lst (vl-remove-if '(lambda (x) (< x 128)) lst)
  )
  (= 0 (rem (length lst) 2))
)

  函数的作用是:判断字串str的前i个(从1开始计,与substr相同)字符是否完整。完整则返回T,否则返回nil。

  这个函数稍作修改可适应自己的情况。

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-21 22:30 , Processed in 0.168464 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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