龙龙仔 发表于 2007-8-21 12:29:00

本帖最后由 作者 于 2007-8-21 12:32:28 编辑 <br /><br /> <p><strong><font face="Verdana" color="#000000">无痕已公布源碼,就差數組的處理</font></strong></p><p><strong><font face="Verdana" color="#000000">我也在想簡單的方法,下面只寫出數組</font></strong></p><p>(if (= -1 (vlax-invoke MSSC 'eval "isarray(GetValue)"))<br/>&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp; (setq UB&nbsp; NIL<br/>&nbsp;&nbsp; N&nbsp;&nbsp; 1<br/>&nbsp;&nbsp; LST NIL<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (while (= NIL UB)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if<br/>&nbsp;(/=<br/>&nbsp;&nbsp; (vl-catch-all-error-p<br/>&nbsp;&nbsp;&nbsp;&nbsp; (vl-catch-all-apply<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'vlax-invoke<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (list MSSC 'eval (strcat "UBound(GETVALUE," (rtos N) ")"))<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; t<br/>&nbsp;)<br/>&nbsp; (setq<br/>&nbsp;&nbsp;&nbsp; LST (append<br/>&nbsp;&nbsp; LST<br/>&nbsp;&nbsp; (list (list (vlax-invoke<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MSSC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'eval<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (strcat "LBound(GETVALUE," (rtos N) ")")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-invoke<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MSSC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'eval<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (strcat "UBound(GETVALUE," (rtos N) ")")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setq UB N)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq N (1+ N))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; LST<br/>&nbsp; )<br/>)</p><p></p><p><br/></p>

oyxx1023 发表于 2007-8-21 13:17:00

没看到啊在哪儿

无痕 发表于 2007-8-25 13:34:00

<p>一句话获得本机cpu序列号</p><p>(xxvbs "Set OBJ = GETObject(\"winmgmts:Win32_Processor.DeviceID='cpu0'\")" "OBJ.ProcessorId")</p>

菜冬瓜 发表于 2007-11-8 20:21:00

<p>看了各位老大的程序,我也作了一些改进,应该是更方便的调用了,示例代码如下,</p><p>;以下定义一个函数<br/>(setq&nbsp; FF "<br/>&nbsp;sub mMsgbox (aa,bb)<br/>&nbsp;&nbsp;msgbox aa &amp; bb, vbOKCancel + vbInformation, \"混合编程\"<br/>&nbsp;end sub<br/>"<br/>)<br/>;定义定义一个宏<br/>(setq&nbsp; msg "<br/>&nbsp;msgbox \"开始混合编程\"<br/>"<br/>)<br/>;以下开始主程序<br/>(defun c:Main (/ cc0 cc1)<br/>&nbsp;(setq str "<br/>&nbsp;&nbsp;$msg<br/>&nbsp;&nbsp;s1=\"v1+v2=\"<br/>&nbsp;&nbsp;s2=((setq v1 5 v2 6)(setq v2 (* v1 v2)))<br/>&nbsp;&nbsp;$ff<br/>&nbsp;&nbsp;mMsgbox s1,s2<br/>&nbsp;"<br/>&nbsp;)<br/>&nbsp;(SWS-vbs str "")<br/>)<br/>;因为暂时不支持注释,所以把注释写在下面了&nbsp;<br/>;(defun c:Main (/ cc0 cc1)<br/>;&nbsp;(setq str "<br/>;&nbsp;&nbsp;$msg&nbsp;;调用变量时候,在变量前加 $<br/>;&nbsp;&nbsp;s1=\"v1+v2=\"<br/>;&nbsp;&nbsp;s2=((setq v1 5 v2 6)(setq v2 (* v1 v2)));必须将lisp语句放在 ()里<br/>;&nbsp;&nbsp;$ff<br/>;&nbsp;&nbsp;mMsgbox s1,s2<br/>;&nbsp;"<br/>;&nbsp;)<br/>;&nbsp;(SWS-vbs str "")<br/>;)&nbsp;<br/>(c:Main)</p>

菜冬瓜 发表于 2007-11-8 20:26:00

附件

<p>以下是附件</p><p></p>

kaixinmao 发表于 2007-11-27 16:57:00

<p>掘墓,这个东西得给挖到前排去。</p><p>利用这个东西,vbs资源多的人可就享福了。</p><p></p>

xiaoquansb 发表于 2007-11-28 12:14:00

<p>正合适我这种想头特大,又只懂一点点lisp的</p>

xdto 发表于 2008-1-21 22:00:00

好好学

vken7az2p 发表于 2008-1-24 23:34:00

无痕发表于2007-8-13 22:31:00static/image/common/back.gif1.没有用到 wscript.exe,也没有写*.vbs程序里面加一句: (xxexpr \"< =>wscript\\.\" str \" \" \"m\")就是在把 \"wscript.\" 替换为 \" \".2.如果要支持js,&nbsp; 就把 (vlax-put-prop

<p>请问版主您提到的返回值<br/>是怎样编写的<br/>可以说明一下吗<br/>谢谢</p><p>另外可以引用 kernel32 来使用吗?<br/>是否可以示范呢?</p>

nonsmall 发表于 2008-10-7 14:27:00

<p>前辈功力之高</p><p>吾辈唯有仰望</p><p>-------------------</p><p>当初这个帖子刚发布的时候,我看不懂,没有感觉.</p><p>现在回望到, 给我的冲击相当巨大,Lisp脱离CAD是我当初用ALISP最大的梦魇</p><p>现在接触VLISP后看到invoke的巨大潜力,终于在这里看到前辈的力作,潜力已被发掘了</p>
页: 1 2 3 4 [5] 6 7 8
查看完整版本: [原创] !将vbscript移植到lisp!