- 积分
- 12349
- 明经币
- 个
- 注册时间
- 2002-10-21
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 作者 于 2007-8-19 17:40:07 编辑
将jscript移植到lisp
姊妹版:将vbscript移植到lisp: http://www.mjtd.com/BBS/dispbbs.asp?boardid=3&replyid=68044&id=62106&page=1&skin=0&Star=1.
说实在的,js的数组返回值困扰了我一阵子,和vbs处理不同.
正好今天是中国的情人节,祝有情人终成眷属。
下载地址:
http://dreamskylxx.ys168.com/ - ;| (xxjs str)=移植js程序的函数v2----ok!-----------by 梁雄啸.2007.8
- 函数: xxjs
- 格式: (xxjs str)
- 参数: str = js语句.
- 说明: 1.有多行语句时,如写在一行,用 "\n" 分隔.
- 2.可将多行js程序拷贝移植,注意: " 应用 "替代, \ 号应用 \\ 替代.
- 3.如果js内容过长,可分成几段来移植,但是被调用的子函数必须写在前面.即把调用子函数的部分放到最后.有回车的地方要保留,如:
- (setq str "
- ****移植的语句****
- "
- )
- ret = js语句中返回值变量.支持表,字符,符号格式.
- 如: '(a "b") , "b" , 'a
- 返回: 执行js,返回js返回值.
- 版本: v2完善数组返回值.完善对wscript. 的判断 . ret支持表,字符,符号格式.
- v1 完成js移植主要部分.
实例:
1. 生成一个文本文件,并写入内容. - (setq str "var fso = new ActiveXObject("Scripting.FileSystemObject");
- var a = fso.CreateTextFile("c:\\\\testfile.txt", true);
- a.WriteLine("This is a test.");
- a.Close();
- ")
- (xxjs str "a")
2. 构造一个函数,并返回调用值.
 - (setq str "function myfunction(arg1, arg2){
- var r;
- r = arg1 * arg2;
- return(r);
- }")
- (xxjs str "myfunction(3,4)") ;;返回: 12
3. 生成数组,返回数组项值 - (setq str
- "var myarray = new Array(); /*赋值*/
- for (i = 0; i < 10; i++) { /赋值/
- myarray[i] = i;
- }")
- (xxjs str "myarray[9]") ;;返回: 9
4.构造数组 - (setq str
- "var myarray = new Array();
- var s;
- for (i = 0; i < 10; i++) {
- myarray[i] = i;
- };
- myarray [10] = "测试"
- ")
- (xxjs str "myarray[2]") ;-> 2
- (xxjs str "myarray[10]") ;->"测试"
- (xxjs str "myarray.length") ;->11
- (xxjs str "myarray.constructor == Array") ;-> :vlax-true
- (xxjs str "myarray") ;->("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "测试") ;; 返回数组对应的表!
- ;;;
- (xxjs "var a = "测试"" "a") ;-> "测试"
- (xxjs "var a = "测试"" "a.constructor== String") ;-> :vlax-true
- (xxjs "var a = 3" "a.valueOf()") ;-> 3
5. - (setq str "
- function test(){
- for(var i=0,a=test.arguments,b=[];i<a.length;i++){
- var t=a[i][0];
- if(!b[t]){
- b[t]=new Array();
- b[t][0]=t;
- }
- for(var j=1;j<a[i].length;j++)
- b[t].push(a[i][j]);
- }
- return b;
- }
- var a0=["0","1"];
- var a1=["0","2"];
- var a2=["0","3"];
- var a3=["0","4"];
- var a4=["1","a"];
- var a5=["1","b"];
- var result=new Array();
- result=test(a0,a1,a2,a3,a4,a5);")
- (xxjs str "result");->(("0" "1" "2" "3" "4") ("1" "a" "b"))
6. - (setq str "
- var arr = new Array();
- for (i = 0 ; i < 4; i++) {
- for (j = 0 ; j < 3; j++) {
- arr[i] = new Array (i , j + i);
- }
- }
- " ret "arr")
- (xxjs str "arr");;-> ((0 2) (1 3) (2 4) (3 5))
- (xxjs str "arr[0][1]");-> 2
7. - (setq str "
- function myfunction(arg1, arg2){
- var r;
- r = arg1 * arg2;
- return(r);
- }")
- (xxjs str "myfunction(2,3)") ;-> 6
8. - (setq str " var tab = new Array ;
- tab = [[1,2,3],[4,5,6],[7,8,9,10]];" ret "tab")
- (xxjs str "tab") ;->((1 2 3) (4 5 6) (7 8 9 10))
- (xxjs str "tab[1][0]") ;-> 4
- (xxjs str "tab[1]") ;->(4 5 6)
9. - (setq str " var tab = new Array; a = [3,"b"]; tab=[1,2,a];")
- (xxjs str "tab") ;->(1 2 (3 "b"))
- (xxjs str "tab[2][0]") ;-> 3
10 - (setq str "
- x = [[1,2,3],[4,5,6],[7,8,9]];
- var a=new Array(x)
- for(i=0;i<x;i++)
- {
- a[i]=new Array(y)
- }" ret "a")
- (xxjs str "a");-> (((1 2 3) (4 5 6) (7 8 9)))
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|