无痕
发表于 2007-8-15 14:46:00
<p>xxvbs升级到第二版.</p><p>版本: v2 完善数组返回值.完善对wscript. 的判断 . ret支持表,字符,符号格式.</p><p>请看第1,2楼更新内容.</p><p>xxjs v1版本(支持jscript已经出来了,还再调试一下)</p><p>js版本的改写比我想像中的要麻烦一点.主要是: js的数组和vbs的数组不一样.更像vl的安全数组.</p>
无痕
发表于 2007-8-16 00:47:00
<p>不好意思,v2版本的数组返回值处理函数对多维数组还是有点问题.v2.2版本解决了.</p><p>更新到v2.2版本</p>
ivde
发表于 2007-8-16 07:09:00
本帖最后由 作者 于 2007-8-16 17:43:05 编辑
楼主讲解下如何取得返回值吧,参数传递是VBS Lisp 直接头痛的问题,谢谢
下面的返回String,多维数组如何处理?
(setq *wsc (vla-GetInterfaceObject
(vlax-get-acad-object)
"ScriptControl"
)
)
(vlax-put-property *wsc "language" "vbs")
(vlax-invoke
*wsc
'ExecuteStatement
"Function test()
Dim ss, re, rv
ss = inputbox(\"将两个连续字符替换为一个,输入测试字符:\")
Set re = New RegExp
re.Pattern = \"(.+)\\1\"
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
rv = re.Replace(ss,\"$1\")
test = rv
End Function"
)
(vlax-invoke *wsc 'eval "test")
龙龙仔
发表于 2007-8-17 08:05:00
(setq STR<br/> "<br/> Function GetValue() <br/> Dim arrX(3 , 3 , 2)<br/> Dim i,j,k,ans1<br/> For i = 0 To 3 <br/> For j = 0 To 3<br/> For k = 0 To 2 <br/> arrX (i , j , k) = i * j + k<br/> Next<br/> Next<br/> Next <br/> GetValue = arrX <br/> End Function<br/> For Each present In GetValue<br/> ans=ans & \" \" & present<br/> Next<br/>"<br/>)<br/>(XXVBS STR "ans")<br/>;;返回: " 0 0 0 0 0 1 2 3 0 2 4 6 0 3 6 9 1 1 1 1 1 2 3 4 1 3 5 7 1 4 7 10 2 2 2 2 2 3 4 5 2 4 6 8 2 5 8 11"<br/>;|<br/>有那麼複雜嗎?<br/>" 0 0 0 0 0 1 2 3 0 2 4 6 0 3 6 9<br/> 1 1 1 1 1 2 3 4 1 3 5 7 1 4 7 10<br/> 2 2 2 2 2 3 4 5 2 4 6 8 2 5 8 11"<br/> |;<br/>
狂刀无痕
发表于 2007-8-17 12:45:00
<p></p><p>为保持返回值的数据类型,我用了一个递归函数来处理。</p><p>分别取各数组项,如果子项是表,递归处理。</p>
ivde
发表于 2007-8-17 16:38:00
函数形式唯一的不足就是 string 的长度受 AuotLisp 的限制,不能运行太长的 VBS,解决的方法是用读文件形式<br/>
i-Stone
发表于 2007-8-18 17:43:00
本帖最后由 作者 于 2007-8-18 17:43:53 编辑 <br /><br /> <p>VBS返回值是如何传递给LISP变量的?能否指点一二</p>
无痕
发表于 2007-8-18 22:46:00
<p>VBS返回值是如何传递给LISP变量的?能否指点一二</p><p>没有传递,不是vb->lisp. 直接用(vla-eval 就可以返回啊</p>
无痕
发表于 2007-8-19 16:49:00
<p><font color="#dd0000" size="6">将jscript移植到lisp</font></p><p></p><p><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62386">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=62386</a></p>
oyxx1023
发表于 2007-8-21 11:57:00
版主什么时候发布源码.