有哪位大神知道如何在AU3里调用RUBY脚本?[已解决]
本帖最后由 cashiba 于 2017-3-18 09:53 编辑以前粗略了解过Ruby,对其数组的操控方法之多和简洁印象深刻,据说是一种嵌入式脚本语言。最近遇到数组问题又想起了ruby。
AU3大神多,肯定有人知道怎么在AU3里调用RUBY语句吧?VB能做到,AU3应该也没问题的,好像要先引用RUBY引擎,具体记不清了。
下面是一些RUBY操作数组的习惯用法,可以看到语句很简洁:
文字链接:http://blog.csdn.net/liu_qingbo/article/details/7439884 自带的数组不好用么 自带的数组不好用么
cfanpc 发表于 2016-10-26 08:23 http://www.autoitx.com/images/common/back.gif
感觉自带的数组操作函数没有ruby里的丰富阿,如果能调用ruby,可以让AU3更强大,更好用吧
{:face (332):} ruby环境有了,用批处理传递给去 回复 1# cashiba
稍微看了一下
自己寫幾個函數 應該 也可以做到一樣的事情吧......
差別只是自己寫 還是系統內定而已吧 回复 5# kk_lee69
自己写函数毕竟费时费力阿,如果能用上优秀的第三方语言,可以让AU3如虎添翼嘛.... 本帖最后由 cashiba 于 2016-11-3 10:14 编辑
已经知道怎么调用ruby了,不过暂时没时间继续学习Ruby.
先把调用代码贴出来,抛砖引玉吧,哪位有心学ruby的可以继续研究啦......
;调用前请先安装Ruby引擎:http://www.artonx.org/data/asr/ActiveRuby.msi
#include <Array.au3>
OperRubyArr()
func OperRubyArr()
local $rb = ObjCreate("scriptcontrol")
$rb.Language = "rubyscript"
$rb.eval("a = ; b = ; c=a & b;")
local $res=$rb.eval("c.join(',')")
ConsoleWrite("重复值:" & $res & @CRLF)
$rb.eval ("a = ; b = ; c=a + b;")
local $ult=$rb.eval("c.to_s")
ConsoleWrite("合并后:" & $ult & @CRLF)
$rb.eval ("a = ; b = ; c=(a | b).sort;")
local $srt=$rb.eval("c.join(',')")
ConsoleWrite("合并去重排序后:" & $srt & @CRLF)
local $del=$rb.eval ("c = ;c.delete_at 2")
local $del=$rb.eval("c.*(',')")
ConsoleWrite("删除其中一元素后:" & $del & @CRLF)
$rb.eval ("ary=.uniq")
local $uni=$rb.eval("ary.*(',')")
ConsoleWrite("取唯一值后:" & $uni & @CRLF)
local $rvs=$rb.eval("'abcdefg'.reverse")
ConsoleWrite("倒转后:" & $rvs & @CRLF)
local $dir = $rb.Eval("Dir::entries('c:/') ")
_ArrayDisplay($dir,"C盘目录")
$rb=0
$rb.quit
EndFunc
Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。Ruby 可运行于多种平台,如 Windows、MAC OS 和 UNIX 的各种版本。 不知道如何把变量传递进ruby代码块。比喻如何把ruby代码块中的数组用变量代替.....
页:
[1]