明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3978|回复: 6

vl-string-left-trim 函数怎么用?

[复制链接]
发表于 2012-3-9 09:25:41 | 显示全部楼层 |阅读模式
(defun c:tt ()
  (vl-load-com)
  (setq a "123-232-250-231")
  (setq a (vl-string-left-trim "-" a))
  (print a)
  (princ)
为什么a不是"123232-250-231"?
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-3-9 10:12:22 | 显示全部楼层
函数从字符串a的第一个字符开始和“-”匹配,遇上第一个不匹配的字符后,函数执行完毕,不再继续搜索。你这里第一个字符是1,和“-”不符,函数结束,所以字符串a无变化。
 楼主| 发表于 2012-3-9 10:35:04 | 显示全部楼层
这样啊 。。。。原来不是很理解这个函数,谢谢!
再请教有啥函数 能查出一个字符串含有另一个字符串的数量
比如上边这个"123-232-250-231"中含有3个"-"
发表于 2012-3-9 12:11:20 | 显示全部楼层
(defun ttt (str)
(if (/= str (vl-string-subst "" "-" str))
(ttt str) str)
)
(- (strlen str) (strlen (ttt str)))
 楼主| 发表于 2012-3-9 14:19:47 | 显示全部楼层
本帖最后由 zhuquanmao 于 2012-3-9 14:21 编辑

哈哈 不错 谢谢! 我自己也写了个 繁琐点儿
  1.   (setq nn 0)
  2.     (while (vl-string-search "-" a)
  3.       (progn
  4.         (setq A (substr A (+ 2 (vl-string-search "-" A))))
  5.         (setq nn (+ 1 nn))
  6.       )
  7.     )
  8. (PRINC nn)
发表于 2018-7-10 16:29:20 | 显示全部楼层
请问如果想要直接删除“-”,有没有函数呢?还是说需要编程?
发表于 2018-7-11 15:01:58 | 显示全部楼层
  1. (defun tt(str char)
  2.   (- (strlen str)(length (vl-remove (ascii char) (vl-string->list str))))
  3. )
  4. (tt "123-232-250-231" "-");;;返回3

  5. ;;;删除“-”
  6. (defun tt(str char)
  7.   (vl-list->string (vl-remove (ascii char) (vl-string->list str)))
  8. )
  9. (tt "123-232-250-231" "-");;;返回"123232250231"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 13:55 , Processed in 0.251997 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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