乐筑天下

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

求助(类型转换)

[复制链接]

13

主题

18

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2003-6-25 10:16:00 | 显示全部楼层 |阅读模式
字符转换:
经过(setq dd (read "hello"))后dd值为hello,此时(type dd)返回nil,如何再将dd转换为字符?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-6-25 10:19:00 | 显示全部楼层
(vl-symbol-name dd)
不过你调试时是否清除了DD的值?
因为(type dd)应该返回SYM
回复

使用道具 举报

13

主题

18

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2003-6-25 10:25:00 | 显示全部楼层
(vl-symbol-name dd)返回的是一个空串""!
回复

使用道具 举报

13

主题

18

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2003-6-25 10:27:00 | 显示全部楼层
调试一下setq dd (read "符号"))(vl-symbol-name dd)
回复

使用道具 举报

22

主题

248

帖子

10

银币

后起之秀

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

铜币
336
发表于 2003-6-25 10:45:00 | 显示全部楼层
......
这样,各个函数的调用控制就成了相当简单的描述了。
将字符串转换成符号、表、数值等类型的方法如上文所述,如果想将符号转换成字符串是否有可能?这是在讨论 (Read) 函数用法之后必然想到的问题。如前所述,我们可以在读入的文件纪录字符串前后各加上一个圆括号,再用 (Read) 函数处理。但是,如果由某个应用程序生成的数据文件中带有字符串内容,在 (Read) 之后将会把字符串按符号处理。例:
        (Read “(Mode3 2.5 23.45 0.34 )”)         返回:(MODE3 2.5 23.45 0.34)
        (Type (Car (Read “(Mode3 2.5 23.45 0.34)”)))               返回:SYM
        (Type (Car (Read “(\”Mode3\” 2.5 23.45 0.34)”)))          返回:STR
可见,只有在相当于 \”Mode3\” 的描述下,(Read) 才能将其正确地转换成字符串。在数据文件的生成程序中解决这个问题,必然要修改输出的格式(给字符串加上双引号),这是挺麻烦的事情,而且有时甚至不可能。较好的办法是设计一个将符号转换成字符串的函数,这样的函数用 AutoLISP 程序完成是相当容易的,这也是 AutoLISP 的优秀功能的表现:
(Defun SToA (|s / |f)
       (SetQ |f (Open "stoa" "w")) (PrinC |s |f) (Close |f)
       (SetQ |f (Open "stoa" "r") |s (Read-Line |f)) (Close |f)
       (Eval |s)
)
有了这样的简单函数定义,就可以在 (Read) 之后,把有关数据变成字符串类型了:
(Type (SToA (Car (Read "(Mode3 2.5 23.45 0.34)")))) 返回:STR
虽然现在的 VLISP 提供了 (VL-PrinC-To-String) 函数,可以直接做这件事,但是,无论是函数解释还是函数名,都证明这个函数与我们前面讨论的是同一个东西!
摘自《VisualLISP程序设计——技巧与范例》
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-6-25 11:04:00 | 显示全部楼层
你是在哪儿调试的,是放在程序的某一段吗?在给DD付值后好象又给付了空值,
我直接调试了,没问题,
在调试过程中注意查看DD的值,应该是 符号 ,
你这样调试就可以了,(vl-symbol-name '符号)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-3 20:05 , Processed in 1.322069 second(s), 64 queries .

© 2020-2025 乐筑天下

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