明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1827|回复: 4

请问如何转换成字符串?

[复制链接]
发表于 2005-8-26 16:57:00 | 显示全部楼层 |阅读模式

我编的一个从excel中读取指定列数据的代码,我想把读出的数据都以字符串的形式列表.

可是如果表中的值是字符的话会自动列表成字符串,
如("c1" "c2" "c3" "c4" "c5" "c6" "c7" "c8" "c9"),

表中如果是数据就不是了,如(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0)

而且我excel中存的只是11,12,13这样的,为什么读出来自动多了个小数点呢?

请大侠指教,谢谢

发表于 2005-8-26 17:38:00 | 显示全部楼层

你可将(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0)此转换成你要的格式

(defun changelst(lst /);;;lst--(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0)
  (if lst
    (progn
      (setq i 0
     len(length lst)
     stringlst '())
      (while (< i len)
 (setq stringlst(append (list(rtos (nth i lst) 2 0)) stringlst))
 (setq i(1+ i))
 )
      (setq stringlst(reverse stringlst))
      )
    )
  stringlst
  )

;;stringlst返回值为("13"  "23"  "33"  "43"  "53"  "63"  "73"  "83"  "93")

 

 楼主| 发表于 2005-8-28 14:57:00 | 显示全部楼层

可在读取excel时,并不知道里面是整数还是实数,还是字符串,有办法判断吗?如果是实数,我只要加一个(rtos [I]cell[/I]),如果是整数就加一个(itoa [I]cell[/I]),或者有什么不管是什么类型都转成字符串的函数吗?谢谢

 楼主| 发表于 2005-8-28 15:08:00 | 显示全部楼层

刚看到别的帖子里有个type,我想到这个

(cond
( (= (type cell[/I]) INT) (setq cell[/I] (itoa [I]cell[/I]) )
( (= (type [I]cell[/I]) REAL) (setq [I]cell[/I] (rtos [I]cell[/I] 2 0) )
( (= (type [I]cell) STR) [I]cell )

不知行不行?

发表于 2005-8-28 19:51:00 | 显示全部楼层

应该可以

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-8-13 05:34 , Processed in 0.188303 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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