乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 27|回复: 19

[编程交流] 将列表写入文件

[复制链接]

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 10:34:37 | 显示全部楼层 |阅读模式
嗨,谁能给我一个建议,把一个列表写进一个*里。txt文件?
 
(定义c:prueba4()
(setq a(entsel))
(setq b(entget(汽车a)))
(setq pt1(cdr(assoc 10 b)))
(setq f(打开“ppr.txt”“w”))
(写入行pt1 f)
(关闭f)
)
 
使用前面的代码,我得到了以下消息:
“错误的参数类型:stringp(39.198 28.5504 0.0)”
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 10:39:51 | 显示全部楼层
问题在于使用(写线)的方式不正确。
 
它应该带有字符串,以便将数据写入文件。例如:
 
  1. (write-line [color="red"]"[/color]Welcome to CADTutor.[color="red"]"[/color] f)

 
试着用前一行替换您的PT1,它就会工作。
 
也许其他人会做点什么。我希望如此。
 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 10:42:26 | 显示全部楼层
不幸的是,这并不是OP想要的答案——他的目标是将一个点的坐标记录到一个文件中。为此,必须将列表转换为字符串。可以使用Gile的一个不错的函数来实现这一点:
 
  1. ;;; lST2STR
  2. ;;; Returns a string which is the concatenation of a list and a  separator
  3. ;;; Author: Gile
  4. ;;; Arguments
  5. ;;; str = the string
  6. ;;; sep = the separator pattern
  7. (defun lst2str (lst sep)
  8. (if (cadr lst)
  9.    (strcat (vl-princ-to-string (car lst))
  10.        sep
  11.        (lst2str (cdr lst) sep)
  12.    )
  13.    (vl-princ-to-string (car lst))
  14. )
  15. )

 
使用方法如下:
  1. (LST2STR PT1 "\t")

 
 
当做
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:47:15 | 显示全部楼层
使用(prin1 pt1 f)将列表打印到文件中
 
将(写入行“f”)用于新行
回复

使用道具 举报

55

主题

133

帖子

78

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 10:48:44 | 显示全部楼层
我希望这是李先生贴出的最简单的方式。这对于我将字符串转换为列表以及将列表转换为字符串非常有用。
 
  1. (defun L->Ptr (lst) (princ) (vl-string-trim "()" (vl-princ-to-string lst)))
  2. (defun Ptr->L (ptr) (read (strcat "(" ptr ")")))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:53:18 | 显示全部楼层
 
Muthu,正如我在过去向你们解释的那样,我从未打算将这些函数用于此目的。。。它们被构造为用于操纵DCL图块值。
回复

使用道具 举报

55

主题

133

帖子

78

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 10:54:46 | 显示全部楼层
 
亲爱的,
我同意了。但它也可以用于这一目的,而不是所有情况。
如果你能为这个特殊的目的罚款任何其他wat(从列表到字符串&从字符串到列表),当然这对我和其他人都会非常有帮助。
 
当做
穆图。
回复

使用道具 举报

55

主题

133

帖子

78

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 10:57:22 | 显示全部楼层
 
 
尊敬的msasu:,
很好。
你还有其他的程序把字符串转换成列表吗?
 
当做
穆图
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:00:14 | 显示全部楼层
嗨,朋友们,我写了以下对我来说很好的文章,也许也能帮到你们:
 
****************************************************************
(setq a(entsel))
(setq b(entget(汽车a)))
(setq pt1(cdr(assoc 10 b)))
(setq pt2(cdr(assoc 11 b)))
(setq f(打开“C:\\Documents and Settings\\Marco\\Mis documentos\\AAA.txt”“w”)
;    *******************************************************************************
(setq ptx1(汽车pt1))
(setq pty1(cadr pt1))
(setq ptz1(caddr pt1))
;    *******************************************************************************
(setq ptx1(rtos ptx1 2 4));将数据转换为字符串
(setq pty1(rtos pty1 2 4))
(setq ptz1(rtos ptz1 2 4))
;    *******************************************************************************
(setq xyz1(strcat ptx1”、“pty1”、“ptz1))
;    *******************************************************************************
(写入线xyz1 f)
 
当做
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 11:03:58 | 显示全部楼层
 
请将代码放入代码编辑器。阅读以下链接。
 
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南
 
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 17:04 , Processed in 0.772594 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表