zjupxw 发表于 2013-8-5 20:58:13

请教read函数使用的一个问题

本帖最后由 zjupxw 于 2013-8-5 21:06 编辑

文本内容如下:
<图元号: absd> 位号 负荷:3.45WM
<图元号: absd> 位号 负荷:3.46WM
<图元号: absd> 位号 负荷:3.47WM
目的是想构建列表 ((<图元号: absd>)(位号) (负荷:3.45WM))         

当我用read-line读取附件中第一行文字之后,得到 "<图元号: absd>\t位号\t负荷:3.45WM"
(strcat "(" str ")" ) 得到"(<图元号: absd>\t位号\t负荷:3.45WM)"
然后再用 (read (strcat "(" str ")" ))之后得到的确是 (<图元号: ABSD> 位号 负荷:3)
怎么就把3.45WM小数点之后的内容去掉了呢?
该怎么解决这个问题,请大师指教,不胜感激!

zjupxw 发表于 2013-8-5 21:29:23

我再次测定了一下,将小数点放在中间的位置,发现read函数都会把小数点及之后的数据全部自动去掉,怎么不让它去掉啊?

Andyhon 发表于 2013-8-5 21:30:54

先试这段
Command: (setq strss (parse str "\t"))
("<图元号: absd>" "位号" "负荷:3.45WM")

Parse 函数定义,站内有,请自行搜寻

wowan1314 发表于 2013-8-5 21:44:16

像楼上这样处理可以不?

楼主要求((<图元号: absd>)(位号) (负荷:3.45WM))还真是难处理!
要不就把.号先替换成其他少见的字符。最后要用的时候再替换回来?

zjupxw 发表于 2013-8-5 21:52:41

Andyhon长老的办法完美的解决了这个问题,谢谢!
论坛里有PARSE自定义函数的

自贡黄明儒 发表于 2013-8-5 22:41:55

wowan1314 发表于 2013-8-5 21:44
像楼上这样处理可以不?

楼主要求(()(位号) (负荷:3.45WM))还真是难处理!


我原来也是你这么干的,还是长老厉害

自贡黄明儒 发表于 2013-8-5 22:48:38

zjupxw 发表于 2013-8-5 21:52
Andyhon长老的办法完美的解决了这个问题,谢谢!
论坛里有PARSE自定义函数的

既然你找到了,贴上来看看如何,要不给个链接?

zjupxw 发表于 2013-8-5 23:17:12

http://www.mjtd.com/function/info-129-216.html
parse 分列,返回一个包含在具有分隔符的字符串所有的标记的列表

zjupxw 发表于 2013-8-6 11:41:19

再次请教个问题,当我想调出图元号那个数据时,调出来的结果总是"<图元号: absd>",但实际应用图元号找图元信息时,要的是 <图元号: absd>,请问怎么把那对双引号去掉呢?谢谢!

自贡黄明儒 发表于 2013-8-6 12:47:59

zjupxw 发表于 2013-8-6 11:41
再次请教个问题,当我想调出图元号那个数据时,调出来的结果总是"",但实际应用图元号找图元信息时,要的 ...

再read如何?
页: [1] 2
查看完整版本: 请教read函数使用的一个问题