Script.NET实现脚本库

  Script.NET本身没有实现调用脚本库的功能。如果将一堆已经定义好的函数放在一个脚本文件里头作为脚本库,要调用这个脚本库时只需要稍作改动就行。

首先建立一个XML文档专门存放哪个脚本会调用哪些库,结构如下

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<LibMapping>
  <MainScript scriptName="">
    <LibScript libFileName=""/>
  </MainScript>
</LibMapping>
复制代码

例如:

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<LibMapping>
  <MainScript scriptName="script1.txt">
    <LibScript libFileName="lib1.txt"/>
    <LibScript libFileName="lib3.txt"/>
  </MainScript>
  <MainScript scriptName="script2.txt">
    <LibScript libFileName="lib1.txt"/>
    <LibScript libFileName="lib2.txt"/>
  </MainScript>
</LibMapping>
复制代码

然后在执行脚本之前分析XML,通过scriptName属性找出它需要调用的脚本库,利用IO操作读取脚本库文件并添加到脚本的字符串中,代码如下

复制代码
            string script = string.Empty;
            script += File.ReadAllText("script1.txt")+"\n";//读取脚本文件
            
            string libScript = string.Empty;
            //分析XML文件
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("LibMapping.xml");
            XmlNode mainNode = xmlDoc.SelectSingleNode(string.Format("//LibMapping/MainScript[@scriptName='{0}']", "script1.txt"));
            if (mainNode != null)
            {
                XmlNodeList libList = mainNode.ChildNodes;
                //读取脚本库
                foreach (XmlNode node in libList)
                {
                    string fileName = node.Attributes["libFileName"].Value;
                    libScript += File.ReadAllText( fileName) + "\n";
                }
            }
            script+= libScript;
Script s = Script.Compile(script);
复制代码

这样做的弊端是调试时不方便,如果脚本代码出错或有异常,简单的字符串拼接会使出错代码的行数有可能不正确,查找错误代码时有困难,希望有哪位大侠给出更好的解决办法。

转载于:https://www.cnblogs.com/zhaolizhe/p/6923564.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Script.NET是通用的脚本语言开发平台,目前支持Tcl、Python、Lua、NSIS脚本的开发,支持脚本语言的开发、运行、调试、编译、生成可执行文件等功能。Script.NET采用类似于Eclipse的插件化开发方式,大部分功能都以插件的形式提供,可以灵活扩展,除了用于脚本开发之外,也可以扩展为各种富客户端应用程序。<br>Script.NET从2000年开始开发,发布过V1.0和V2.0两个大版本,经过8年的不断优化完善,目前在架构方面已经比较合理,完善的插件机制,使得Script.NET平台可以非常容易的扩展更多的功能。可以访问主页 http://www.blueantstudio.net 了解更多信息。<br><br>Script.NET V2.0.2版本开始将基础平台和脚本开发包分离,此处下载的是基础运行平台,要使用某种脚本语言的开发功能,可以到蓝蚂蚁工作室网站下载相应语言的开发包,下载地址:<br>http://www.blueantstudio.net/scriptnet/download/download.htm<br><br>Script.NET主要功能特性如下: <br>1、编辑、调试、运行tcl、python、lua脚本; <br>2、脚本的编译/加密和生成可执行文件(每种脚本语言支持的程度不同); <br>3、效率分析等辅助功能(目前只有tcl脚本支持了此功能); <br>4、关键字帮助,通过F1键或鼠标移动到关键字上,获取详细的帮助信息; <br>5、收集了较多的脚本扩展包、帮助文档和演示程序,目前tcl的扩展包收集较多,其他脚本也正在收集完善,除了常用的tk、wx、pmw,还有图象、多媒体、界面等很多各种各样的扩展包,以后我们打算通过在线更新的方式使用户可以更方便的获取到各种扩展包; <br>6、附带了ftp、代码统计、正则表达式等一些扩展工具; <br>7、采用灵活的可扩展架构,整个系统可以灵活的扩展各种解释器、界面组件、工具、工程、界面风格等; <br>8、支持控制台功能(目前仅有tcl控制台、telnet控制台、串口控制台可用,其他脚本控制台正在开发); <br>9、Script.NET作为一个通用平台对外提供了很多接口,可以通过脚本等方式调用平台的各种功能,其中的tcl语言支持很多平台扩展命令,可以通过tcl操纵平台的各种功能,对平台进行扩展; <br>10、封装的TclFace页面扩展包,可以通过面向对象的tcl脚本生成各种平台的页面功能。
Script.NET是蓝蚂蚁工作室开发的一套用于Tcl/Python/Ruby/Lua/NSIS 等脚本语言开发的集成开发环境,刚刚发布的2.1.1版本新增了Ruby脚本的支持,可以支持Ruby脚本的开发、调试、生成可执行文件、控制台等功能,可以支持wxRuby、RubyTk等界面,目前还不支持Rails的调试,后续版本会不断完善。 下载地址和详细介绍请请参考蓝蚂蚁工作室的主页: http://www.blueantstudio.net Script.NET主要功能特性如下: 1、编辑、调试、运行tcl、python、lua、ruby脚本; 2、脚本的编译/加密和生成可执行文件(每种脚本语言支持的程度不同); 3、效率分析等辅助功能(目前只有tcl脚本支持了此功能); 4、关键字帮助,通过F1键或鼠标移动到关键字上,获取详细的帮助信息; 5、收集了较多的脚本扩展包、帮助文档和演示程序,目前tcl的扩展包收集较多,其他脚本也正在收集完善,除了常用的tk、wx、pmw,还有图象、多媒体、界面等很多各种各样的扩展包,以后我们打算通过在线更新的方式使用户可以更方便的获取到各种扩展包; 6、附带了ftp、代码统计、正则表达式等一些扩展工具; 7、采用灵活的可扩展架构,整个系统可以灵活的扩展各种解释器、界面组件、工具、工程、界面风格等; 8、支持控制台功能(目前支持tcl/python/lua/ruby控制台、telnet控制台、串口控制台可用,其他脚本控制台正在开发); 9、Script.NET作为一个通用平台对外提供了很多接口,可以通过脚本等方式调用平台的各种功能,其中的tcl语言支持很多平台扩展命令,可以通过tcl操纵平台的各种功能,对平台进行扩展; 10、封装的TclFace页面扩展包,可以通过面向对象的tcl脚本生成各种平台的页面功能,此扩展包除了可以用于本地应用程序生成页面之外,还可以运行于AOLServer WEB服务器,作为一种类似于JSF的服务器端脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值