明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1565|回复: 8

一个列表,内字符个数是不定的,如何得每一个字符

[复制链接]
发表于 2005-10-31 12:50 | 显示全部楼层 |阅读模式

一个列表,内字符个数是不定的,如何得每一个字符

(A B C D ..........)

最后取设变量(setq    前缀1 a) (setq    前缀2 b) (setq    前缀3 c) 前缀后的数目与列表中的位置是一样的

发表于 2005-10-31 13:13 | 显示全部楼层
这是一个表,可用length函数测定表的长度,再用nth函数分别取出表里的每一个元素,然后用字符串连接函数strcat加以连接就行了.比如:
(defun c:test()
  (setq b '(a b c d) m 0)
  (setq n (length b))
  (repeat n
     (setq  c (nth m b)
              m (+ m 1)
               d (strcat "前缀" c)
     )
     (print d)(princ)
  )
)
 楼主| 发表于 2005-10-31 13:44 | 显示全部楼层

试过了,参数错误            参数类型错误: stringp A

发表于 2005-10-31 13:56 | 显示全部楼层
如果这样,则
(defun c:test()
  (setq b (list "a" "b" "c" "d") m 0)
  (setq n (length b))
  (repeat n
     (setq  c (nth m b) m (+ m 1))
     (setq  d (strcat "前缀" c))
     (print d)(princ)
  )
)
如果这样,则
(defun c:test1()
  (vl-load-com)
  (setq b '(a b c d) m 0)
  (setq n (length b))
  (repeat n
     (setq  c (nth m b) m (+ m 1))
     (setq  c (vl-string-subst "" "" c))
     (setq  d (strcat "前缀" c))
     (print d)(princ)
  )
)
 楼主| 发表于 2005-10-31 14:07 | 显示全部楼层
可能是这没有说清楚,我是想得到全局变量,前缀N=表中的第N个字符串,前缀N是变量名
发表于 2005-10-31 14:26 | 显示全部楼层
1,全局变量在LISP里如defun c:XX(/ x y)---"/" 后面的x y就是局部变量,否则就是全局变量.
2,前缀N将(setq  d (strcat "前缀" c))这一句改成:
   (setq  d (strcat (rtos m 2 0) c))就行了
发表于 2005-10-31 20:27 | 显示全部楼层
tc405003发表于2005-10-31 12:50:00回复:(tc405003)一个列表,内字符个数是不定的,如何得每一个字符 一个列表,内字符个数是不定的,如何得每一个字符(A B C D ..........)最后取设变量(setq
你好,我是飞饼一号,需要我帮忙么?可能越帮越忙哦。。。。。。呵呵
  1. (setq lst '(a b c d e)
  2.          i 0)
  3. (mapcar  '(lambda(x)(setq i (1+ i)) (set (read(strcat "N" (itoa i))) x)) lst)
发表于 2005-11-1 18:15 | 显示全部楼层
  1.   (defun c:test ()
  2.   (setq lst '(A B C D e f g)
  3. i   0
  4.   )
  5.   (foreach n lst
  6.     (progn
  7.       (setq a (read (strcat "前缀" (rtos (setq i (1+ i)) 2 0))))
  8.       (princ "\n")
  9.       (princ a)
  10.       (princ " = ")
  11.       (setq a n)
  12.       (princ n)
  13.     )
  14.   )
  15.   (princ)
  16. )
发表于 2005-11-2 09:54 | 显示全部楼层

tc405003:

你的前缀已经在表中了,你现在又把他们一个个重新定义变量,我认为没必要,要用前缀时,直接从表中取就可以了,要让他成为全局的,只要表名是全局的就可以了,

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

本版积分规则

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

GMT+8, 2024-5-20 11:50 , Processed in 0.287457 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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