找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1633|回复: 5

[讨论]:foreach函数的用法

[复制链接]
发表于 2005-10-8 17:34:38 | 显示全部楼层 |阅读模式

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

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

×
我有一个程序用到了这个函数,但是不知道哪里不对了,是不是我用的不对?

  1.   [FONT=courier new]
  2. ;;;以下是一个读文本文件,并将内容写到CAD里
  3. (defun c:10test4 (/ data data_list dat_file ff hh pt)
  4.   (setq data_list '())
  5.   (setq        dat_file
  6.          (getfiled
  7.            "展点范例"
  8.            "C:\\Documents and Settings\\cw\\桌面\\lsp练习\\note1"
  9.            "txt"
  10.            2
  11.          )
  12.   )                                        ;提示用户选取文件名
  13.   (setq        pt (getpoint "请选择文字的插入点")
  14.         hh (getreal "请输入字高:")
  15.   )
  16.   (setq        ff   (open dat_file "r")        ;读取文件
  17.         data (read-line ff)
  18.   )                                        ;读取文件的第一行
  19.   (while data
  20.     (setq data_list (cons data data_list))
  21.     (setq data (read-line ff))
  22.   )                                        ;读取文件的每一行直到DATA为NIL
  23.   (setq data_list (reverse data_list))
  24.   (command "text"
  25.            "j"
  26.            "c"
  27.            pt
  28.            hh
  29.            0
  30.            (foreach txt data_list (command txt ""))
  31.           
  32.   )                                        ;画
  33.   (close ff)                                ;关闭文件
  34.   (prin1)
  35. )
  36. (prompt "<<10test4>>程序")
  37. (prin1)
  38.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-8 18:24:36 | 显示全部楼层
(command "text"
           "j"
           "c"
           pt
           hh
           0
           (foreach txt data_list (command txt ""))
          
  )       

命令里面有命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-8 18:36:15 | 显示全部楼层
但是下面这段是成立的呀
(command "pline" (foreach pt data_list (command pt)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-8 21:06:02 | 显示全部楼层
试试:
  1. [FONT=courier new](defun c:test ()
  2.   (setq        data_list '()
  3.         dat_file  (getfiled "" "C:\\111" "txt" 2)
  4.         pt          (getpoint "\n请选择文字的插入点 : ")
  5.         hh          (getreal "\n请输入字高 : ")
  6.         ff          (open dat_file "r")
  7.   )
  8.   (while (setq data (read-line ff))
  9.     (setq data_list (cons data data_list))
  10.   )
  11.   (setq data_list (reverse data_list))
  12.   (foreach txt data_list
  13.     (progn
  14.       (setq pt (polar pt (* pi 1.5) (* hh 1.5)))
  15.       (command "text" "j" "c" pt hh 0 txt)
  16.     )
  17.   )
  18.   (close ff)
  19.   (princ)
  20. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-10-8 23:51:26 | 显示全部楼层
(command txt "") & (command pt) 是不同的,没有第一个用法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-9 08:05:06 | 显示全部楼层
感谢各位的帮助,有各位的支持,不愁学不好LISP呀!!^_^
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 15:57 , Processed in 0.171047 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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