snigefqb 发表于 2013-10-29 19:36:57

lsp导入外部数据时怎么读取特定行数的数据,不用重新列表的方法

数据如下:
T1,,501625.730,3239466.272,1379.972
T3,,501599.984,3239466.103,1376.210
W2,,501602.040,3239470.105,1375.448
W4,,501601.276,3239469.062,1375.699
T5,,501600.343,3239467.858,1376.000
6,,501599.718,3239465.638,1376.540
7,,501599.661,3239464.428,1376.811
8,,501600.075,3239463.531,1377.026

当我执行程序读到第 5 (A) 行时同时需要第 1 (B)行或者第 3 (B)行的数据时该怎么弄,当然 B 一般是在 A 的前面,
请各位大神帮忙解答,详细点哈,在下菜鸟谢谢

llsheng_73 发表于 2013-10-30 10:55:08

本帖最后由 llsheng_73 于 2013-10-30 10:58 编辑

楼主的意思是想在展点时实现相同代码自动连线,对吧?
现在既然你的“代码”是在第一列的第一个字母上体现出来(第一个是字母的话这个点有一定特殊意义,只是一般数字就只需要把展绘到图上不再管它了),楼主是这意思吧?
那么你可以首先将所有数据读到一个坐标列表中(要不要同时展点以及什么时候展点自己可以在优化算法时考虑)
所有数据读取完了后按第一列进行排序,那样它应该是把首字母相同的排在了一起并且自动按它后边的顺序号连续的,你先前提出的问题就不存在了

snigefqb 发表于 2013-10-30 12:44:16

llsheng_73 发表于 2013-10-30 10:55 static/image/common/back.gif
楼主的意思是想在展点时实现相同代码自动连线,对吧?
现在既然你的“代码”是在第一列的第一个字母上体现 ...

我想问的是有没有不重新建一个表的方法,直接读取文件

xyp1964 发表于 2013-10-30 12:53:08

(defun c:tt ()
(setq      lst (xyp-Txt2List "d:\\临时.txt")
      lst (mapcar '(lambda (x) (xyp-Get-Str2Lstspr x ",")) lst)
)
;|
;; lst
'(("T1" "501625.730" "3239466.272" "1379.972")
    ("T3" "501599.984" "3239466.103" "1376.210")
    ("W2" "501602.040" "3239470.105" "1375.448")
    ("W4" "501601.276" "3239469.062" "1375.699")
    ("T5" "501600.343" "3239467.858" "1376.000")
    ("6" "501599.718" "3239465.638" "1376.540")
    ("7" "501599.661" "3239464.428" "1376.811")
    ("8" "501600.075" "3239463.531" "1377.026")
   )
|;
;; 5 (A)
(setq 5A (car (nth 4 lst)))
;;1 (B)
(setq 1B (cadr (nth 0 lst)))
;;3 (B)
(setq 3B (cadr (nth 2 lst)))
(princ)
)

llsheng_73 发表于 2013-10-30 13:27:04

snigefqb 发表于 2013-10-30 12:44 static/image/common/back.gif
我想问的是有没有不重新建一个表的方法,直接读取文件

并不重新建表,表是在读入的时候一次建好的,后边只是排序处理,可以仍然是那个表
当然你如果根本就不想用表,那对不起,文本文件不能象二进制文件那样可以设文件指针随意到任何地方读取记录

snigefqb 发表于 2013-10-30 13:28:55

xyp1964 发表于 2013-10-30 12:53 static/image/common/back.gif
(defun c:tt ()
(setq      lst (xyp-Txt2List "d:\\临时.txt")
      lst (mapcar '(lambda (x) ( ...

(xyp-Txt2List   是什么函数?
页: [1]
查看完整版本: lsp导入外部数据时怎么读取特定行数的数据,不用重新列表的方法