明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xiaocainiao

[提问] 使用wcmatch判断中文报错

[复制链接]
 楼主| 发表于 2023-3-7 12:13:50 | 显示全部楼层
xyp1964 发表于 2023-3-7 11:50
(defun abc (str / lst a b)
  ;; (abc "节点01") → ("节点" "01")
  (setq        lst (vl-string->list str ...

通常会有这几种情况、“节点011”、“节点-011”、“节点 011” 和“节点1.01”
回复

使用道具 举报

 楼主| 发表于 2023-3-7 12:14:55 | 显示全部楼层
d1742647821 发表于 2023-3-7 12:02
我试了,把defun放前面不会报错

放前面也是报错的、我的源代码就是放前面的、只是偶尔会正常。正常的概率非常低
回复

使用道具 举报

发表于 2023-3-8 10:56:23 来自手机 | 显示全部楼层
汉字是双子节,标点符号也是,有时substr把1汉字裁成两半就会出错
回复

使用道具 举报

 楼主| 发表于 2023-3-8 10:59:34 | 显示全部楼层
wzg356 发表于 2023-3-8 10:56
汉字是双子节,标点符号也是,有时substr把1汉字裁成两半就会出错

请教一下应该如何修改这个代码才能不报错了、以前没弄过这个东西、谢谢
回复

使用道具 举报

发表于 2023-3-8 11:04:25 来自手机 | 显示全部楼层
xiaocainiao 发表于 2023-3-8 10:59
请教一下应该如何修改这个代码才能不报错了、以前没弄过这个东西、谢谢

substr之前先用vl-search……定位,手机回,记不得函数了,自己查
回复

使用道具 举报

发表于 2023-3-8 11:05:56 | 显示全部楼层
是不是那个系统变量的问题呀
回复

使用道具 举报

发表于 2023-3-8 11:23:35 来自手机 | 显示全部楼层
xiaocainiao 发表于 2023-3-8 10:59
请教一下应该如何修改这个代码才能不报错了、以前没弄过这个东西、谢谢

最大毛病是不能那样简单转表倒置,比如177 188是一个汉字,倒过来188 177就不能转汉字—出错,相应substr裁剪位置也不能把汉字裁为两半
回复

使用道具 举报

 楼主| 发表于 2023-3-8 13:12:26 | 显示全部楼层
wzg356 发表于 2023-3-8 12:21
(defun aa(str / num n lst a)
(setq num "" n 0)
(setq lst(reverse(vl-string->list str)))

谢谢、我试一下
回复

使用道具 举报

发表于 2023-3-23 15:21:45 | 显示全部楼层
我的一段程序中的一部分,fontw是字符长度
  1. (setq ct 0)
  2. (setq j 1)
  3. ;判断包含英文字符个数
  4. (repeat FontW
  5.   (if (< (ascii (substr txts j 1)) 127)
  6.     (setq ct (1+ ct))
  7.   )
  8.   (setq j (1+ j))
  9. )
  10. (setq tmp (substr txts 1 (- FontW (rem ct 2)))) ;含奇数英文字符则少取一位
  11. (setq txts (substr txts (1+ (- FontW (rem ct 2))))) ;截取剩余字符

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 12:50 , Processed in 0.178712 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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