找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 挚友01

[求助] 致命错误 ,大家快来帮助啊!!!!

[复制链接]
 楼主| 发表于 2017-2-24 10:55:14 | 显示全部楼层
奇怪了,用(xd::list:fromfile "j:\\1-9配电屏2.dat")和(read-line f)区别在哪?好象没什么区别啊...

(defun excel_dat(file_1 / f l ll c cc list_k list_kk file_1 b bb)
(setq list_k '())
(if (setq fil (findfile file_1))  
      (progn
        (setq f (open fil "r"))
        (while (setq l (read-line f))
; 回注水综合杀菌系统
,.38,6,,12,否,22.79,32,YJLV-0.6/1,5x6,G25,,,,SJXT,否
                         (prin1 l)(terpri)读的数据有误.........
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-24 10:59:00 | 显示全部楼层
看看,这是我在原文件直接ctrl+c 复制拷贝在论坛的结果....
Z4&192&0&84.7600021362305&1&.85&.8&13019.13&8068.53&67.8080017089844&否&121.21&160&YJV-0.6/1&3x70+2x35&G80&上进线&否&是&否&否
ZM配电箱&.38&1&0&17.9199996948242&无&否&32.03&50&YJLV-0.6/1&5x10&G40&&&&ZM&否
Z2配电箱&.38&1&0&10.4&无&否&18.59&40&YJLV-0.6/1&5x10&G40&&&&Z2&否
Z4配电柜&.38&1&0&12.2400001525879&无&否&21.88&40&YJLV22-0.6/1&5x10&G50&&&&Z4&否
Z5配电箱&.38&1&0&3.6&无&否&6.44&25&YJLV-0.6/1&5x4&G25&&&&Z5&否
Z6配电箱&.38&1&0&3.6&无&否&6.44&25&YJLV-0.6/1&5x4&G25&&&&Z6&否
Z7配电箱&.38&1&0&3.6&无&否&6.44&25&YJLV-0.6/1&5x4&G25&&&&Z7&否
场区投光灯&.38&1&0&2.4&无&否&4.29&20&YJLV22-0.6/1&5x4&G40&&&&TGD&时钟控
加热炉控制柜&.38&1&0&1&无&否&1.79&10&YJLV-0.6/1&5x4&G25&&&&JRL&否
2#加热炉燃烧器配电箱
&.38&1&0&2&无&否&3.58&6&YJV22-0.6/1&5x4&G40&&&&Z9&否
WX配电箱&.38&1&0&12&无&否&21.45&25&YJLV-0.6/1&5x4&G25&&&&WX&否
UPS配电柜&.38&1&0&8&无&否&14.3&20&YJLV-0.6/1&5x6&G32&&&&UPS&否
天然气调压区电热带
&.38&1&0&8&无&否&14.3&20&YJV22-0.6/1&5x4&G40&&&&DBR&50mA
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-2-24 10:59:57 | 显示全部楼层

我帮你把截断那行挪动下字符在挪回去,保存文件,在读就正常了,你用什么生成保存的这个DAT文件? 如果这个软件生成的一直有问题,建议你用支持中文的字处理软件打开数据文件保存下。

(xd::list:fromfile "j:\\1-9配电屏2.dat")
("2#加热炉燃烧器配电箱&.38&1&0&2&无&否&3.58&6&YJV22-0.6/1&5x4&G40&&&&Z9&否" "WX配电箱&.38&1&0&12&无&否&21.45&25&YJLV-0.6/1&5x4&G25&&&&WX&否" "UPS配电柜&.38&1&0&8&无&否&14.3&20&YJLV-0.6/1&5x6&G32&&&&UPS&否" "天然气调压区电热带" "&.38&1&0&8&无&否&14.3&20&YJV22-0.6/1&5x4&G40&&&&DBR&50mA")

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-2-24 11:01:38 | 显示全部楼层

文件出在数据文件,而不是函数。看我上楼的帖子,你处理下文件在读试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-24 11:02:59 | 显示全部楼层
这个是EXCEL与CAD的交换中间文件,原EXCEL是直接提取单元格中的内容
EXCEL中的语句....Print #1, Cells(i_c9, 1) & "&" & Cells(i_c9, 2) & "&" & Cells(i_c9, 3) & "&"; Cells(i_c9, 4)
所以还是要从查找隐藏“换行符”入手来解决
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-2-24 11:08:16 | 显示全部楼层

计算机是很忠实的,你给他什么数据他就处理什么数据,readline函数设计是按行读的,你给他的文件(虽然看着是一行的),但实际上有隐藏的换行符, 这个你怪不到readline,你也不能通过改善readline去解决问题。只能是你规范下你的数据文件才行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-2-24 11:11:48 | 显示全部楼层

看看我5楼的回复,保存文本文件应该由excel自己完成,不能自己用复制粘贴来替代。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-24 11:12:27 | 显示全部楼层
可EXCEL的中单元格的添入数据是任意的,不知道什么时候就加入了"换行符",最终还是程序出错了,还找不到原因,我就想是否能先检查一下数据,判断是否有非法输入,做一下容错处理程序...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-2-24 11:18:55 | 显示全部楼层

你用LISP没办法,因为lisp的读文件是按行读的,文件实际换行了,他正常读出来了,读不到你“认为”是正确的数据。如果要想办法,也只能是用C++等其他语言能整体一次性的读整个文件,然后把不是在行尾的回车换行符删除掉才行。

你的文件生成过程是什么样的? 某个程序?还是手工你自己从EXCEL文件里面导出的? 你现在的问题在生成数据文件这个地方,你要在生成文件的地方找办法。

测试过程中,感觉用个编辑软件打开你的文件,什么也不做,保存。 就能正常。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-2-24 11:22:15 | 显示全部楼层
EXCEL转DAT文件你用的什么工具? 自己写的? 还是什么?

建议你把你的文件格式里面的  &  换其他的字符,试试读,比如换成*, 看看生成的文件能正常读不
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-24 12:49:22 | 显示全部楼层
本帖最后由 挚友01 于 2017-2-24 12:55 编辑

EXCEL转DAT文件:
If filenames <> False Then
                    Open filenames For Output As #1
                                Print #1, Cells(i_c9, 1) & "&" & Cells(i_c9, 2) & "&" & Cells(i_c9, 3) & "&"; Cells(i_c9, 4) & "&"; Cells(i_c9, 5) & "&"; ; Cells(i_c9, 12) & "&"; Cells(i_c9, 13) & "&"; Cells(i_c9, 14) & "&"; Cells(i_c9, 15) & "&"; Cells(i_c9, 16) & "&"; Cells(i_c9, 17) & "&"; Cells(i_c9, 18) & "&"; Cells(i_c9, 19) & "&"; Cells(i_c9, 20) & "&"; Cells(i_c9, 21) & "&"; Cells(i_c9, 22)
                                   
捕获.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-2-24 14:02:05 | 显示全部楼层

安装XDRX API,CAD里面用函数XD::Excel:getFromFile直接读入EXCEL数据表

命令: (XD::Excel:getFromFile "d:\\drawing1.xls" 0)
((((0 0) "Name") ((0 1) "Colour") ((0 2) "Linetype") ((0 3) "Lineweight") ((0 4) "Plot") ((0 5) "Description")) (((1 0) "0") ((1 1) 7.0) ((1 2) "Continuous") ((1 3) -3.0) ((1 4) 1.0) ((1 5) "")) (((2 0) 1.0) ((2 1) 7.0) ((2 2) "Continuous") ((2 3) -3.0) ((2 4) 1.0) ((2 5) "")) (((3 0) 2.0) ((3 1) 7.0) ((3 2) "Continuous") ((3 3) -3.0) ((3 4) 1.0) ((3 5) "")) (((4 0) 3.0) ((4 1) 7.0) ((4 2) "Continuous") ((4 3) -3.0) ((4 4) 1.0) ((4 5) "")))


下面几句代码,就把数据生成CAD里面的表格了

QQ截图20170224134251.png

QQ截图20170224135403.png


(defun c:tt ()
  (if (and (setq fl (xdrx_system_selectFiles "选择EXCEL文件" "" "xls" 2))
           (setq pt (getpoint "\n表格插入点<退出>:")))
    (progn
      (setq fs (XD::Excel:getFromFile (car fl) 0))
      (setq d (mapcar '(lambda (x)
                         (mapcar '(lambda (y)
                                    (cadr y)
                                  )
                                 x
                         )
                       )
                      fs
              )
      )
      (setq d (cons (list "图层设置表") d)
            d (xd::table:fillgap d nil)
      )
      (xd::text:init 1)
      (setq tb (XD::Table:MakeFromList d pt 3.5 1.5))
      (xdrx_table_fitsize tb)
    )
  )
  (princ)
)


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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2017-2-24 18:24:33 | 显示全部楼层
本帖最后由 csharp 于 2017-2-24 18:26 编辑

readline 就是有啥读啥,后期再处理,你要用 xls 就直接用 ActiveX 读取,没必要另存一个 dat, 格里有回车也是读成一个字串(回车是 \r\n),VBA 处理多余了,要么你都用 VBA 去处理,不要 VBA + alisp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 10:55 , Processed in 0.259794 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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