我得到了Excel的值,试着直接用Excel表中的值。 我猜想从Excel输入到Lisp的这个线程与这个查询有关。
听起来真的很简单,只需要理解就行了。在运行“管道等轴测例程”之前,您是否告诉我们需要CSV文件中的值?CSV文件在不断变化?还是反过来?CSV文件是静态的?
我需要一片阿斯匹林 是的,从Excel输入到Lisp的这个线程与这个查询相关。 我的理解:
如果字符串为
“P,ND,150011800”
你分配这个(setq ND1500“11800”);也是25
是的,你是对的。。。。我的最小ND=25只。。。
ND25=“3000”或“6000”有时会有所不同,这就是为什么我需要从excel表中获取。
每个管道高达ND 4000。。。。。
这一点很清楚,奇怪的是“assing_val”例程。条件是什么?寻找什么价值观?这些价值观的来源是什么?
(if (and (= (substr tmpstr 3 6) "ND,500") (/= (substr tmpstr 9 1) "0")) (setq ND500 (substr tmpstr 10 5)))
他们是否依赖于图纸?还是取决于列表?因此,如果我在同一个CSV文件和相同项目的每个图形上运行“assing\u val”,结果是相同的。
多重条件的基础是什么?对于每个绘图会话,“assing_val”每次都有不同的条件[如果是]?
不同的lisp代码?或者不同的CSV文件?
现在我需要两片阿斯匹林 需要这样做
很肯定有人会帮助你,耐心点。至于我。。。。。
pBe就在那里。
也许OP只是想分配变量?即:ND1500,值返回“11800”
不管任何情况。
(defun assign_val (str / i $ l )
(while (setq i (vl-string-search "," str))
(setq l (cons (substr str 1 i) l)
str (substr str (+ 2 i) (- (strlen str) i))
) ;_ end of setq
) ;_ end of while
(setq l (reverse (vl-remove "" (cons str l))))
(setq $ (nth 2 l) i (read $ ))
(if (and (numberp i) (zerop (rem i 50)) (<= 25 i 2000))
(set (read (strcat (nth 1 l) $)) (nth 3 l))
) ;_ end of if
) ;_ end of defun
这就是为什么知道和理解来源是重要的。
对于这个特定的字符串语法,从(读取行…)价值
UET,ND,MI,150026201460,,,
,,,,,,,,
45Y,ND,MI,150250400400,,
45Y,ND,MI,200330540540,,
,,,,,,,,
,,,,,,,,
NWP,ND,-,300,50440,,,
(defun _string2List(str)(if(setq lst(read(strcat)(“(vl string translate)”,“str)”))))(mapcar’(lambda(x)(if(numberp x)(itoa x);
页:
1
[2]