找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1493|回复: 6

[LISP程序]:小数点前没有数值的小数

[复制链接]
发表于 2007-6-3 22:20:54 | 显示全部楼层 |阅读模式

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

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

×
已知data的值为"F001  3692761.9254    .0021  508218.8788      .0013"
(setq data1 (read (strcat "(" data  ")" ) ) )  

此时会返回:ERROR: 输入中的点位置不正确*取消*
请问出现这样的错误该如何解决??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

 楼主| 发表于 2007-6-4 06:34:21 | 显示全部楼层
能不能直接先将"F001 3692761.9254 .0021 508218.8788 .0013"变成"F001 3692761.9254 0.0021 508218.8788 0.0013"呢?如果能的话,就可以再通过read读取里面的内容。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-6-5 14:06:44 | 显示全部楼层
根据3楼的思路,函数如下:

  1. <CENTER><H1>通用函数_字符串转换成表.lsp</H1></CENTER>
  2. <SCRIPT LANGUAGE="JavaScript">document.write("最后修改时间: " + document.lastModified)
  3. </SCRIPT>
  4. <HR SIZE=5><PRE><FONT face="Fixedsys"></FONT>
  5. <FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;;;===================================================</SPAN></FONT>
  6. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;|;;函数名称:STR-&gt;list                               </SPAN></FONT>
  7. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">        功能:通用函数,将字符串中的内容转换成表的形式</SPAN></FONT>
  8. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">    参数说明:str---欲操作的内容,类型:字符串        </SPAN></FONT>
  9. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">      返回值:表                                      </SPAN></FONT>
  10. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">        示例:(STR-&gt;LIST "F01 .1 .03")                </SPAN></FONT>
  11. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">              返回:(F01 0.1 0.03)                    </SPAN></FONT>
  12. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">        日期:zml84 于 2007-06-05                     </SPAN></FONT>
  13. <FONT size=2 face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;;|;</SPAN></FONT>
  14. <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">defun</FONT> <FONT face="Fixedsys">STR->LIST</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys">STR</FONT> <FONT face="Fixedsys" COLOR="#0000FF">/</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys">TMP</FONT> <FONT face="Fixedsys">STR_N</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  15.     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">STR_N</FONT>        <FONT face="Fixedsys" COLOR="#FF00FF">""</FONT>
  16.           <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT>
  17.     <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  18.     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">repeat</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">strlen</FONT> <FONT face="Fixedsys">STR</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  19.         <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">TMP</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">substr</FONT> <FONT face="Fixedsys">STR</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  20.         <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">if</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">and</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">=</FONT> <FONT face="Fixedsys">TMP</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"."</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  21.                  <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">or</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">=</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  22.                      <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">=</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">substr</FONT> <FONT face="Fixedsys">STR</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">1-</FONT> <FONT face="Fixedsys">I</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT> <FONT face="Fixedsys" COLOR="#009900">1</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">" "</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  23.                  <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  24.             <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  25.             <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">STR_N</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">strcat</FONT> <FONT face="Fixedsys">STR_N</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"0."</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  26.             <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">STR_N</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">strcat</FONT> <FONT face="Fixedsys">STR_N</FONT> <FONT face="Fixedsys">TMP</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  27.         <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  28.         <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">setq</FONT> <FONT face="Fixedsys">I</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">1+</FONT> <FONT face="Fixedsys">I</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  29.     <FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  30.     <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">read</FONT> <FONT face="Fixedsys" COLOR="#FF0000">(</FONT><FONT face="Fixedsys" COLOR="#0000FF">strcat</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">"("</FONT> <FONT face="Fixedsys">STR_N</FONT> <FONT face="Fixedsys" COLOR="#FF00FF">")"</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT><FONT face="Fixedsys" COLOR="#FF0000">)</FONT>
  31. <FONT face="Fixedsys" COLOR="#FF0000">)</FONT> <FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;_结束defun</SPAN></FONT>
  32. <FONT face="Fixedsys" COLOR=#990099><SPAN STYLE="BACKGROUND-COLOR: #CCCCCC">;;;===================================================</SPAN></FONT>
  33. <FONT face="Fixedsys"></FONT>
  34. </PRE>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2007-6-6 08:49:27 | 显示全部楼层
试了一下。
[php]
(setq str "F001 3692761.9254 .0021 508218.8788 .0013")
(STR->LIST str)
;;;结果:(F001 3.69276e+006 0.0021 508219.0 0.0013)
[/php]
这里面有三种:
1.没有小数
2.整数+点+小数
3.点+小数
这里可是偏差不是很大。。。看楼主的用途了。精确到几位罢了。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-6-9 09:39:09 | 显示全部楼层
(setq st "F001 3692761.9254 .0021 508218.8788 .0013"
      a " ."
      b " 0.")
(while (vl-string-search a st)
  (setq st (vl-string-subst b a st))
)
(read (strcat "(" st ")"))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 09:52 , Processed in 0.266259 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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