| 在ASP中用execute 动态的创建数组
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 [p]今天找了下eval 没法创建连续的变量,如"a1,a2,a3..."这样的连续变量[br]而我希望创建"a1,a2,a3..."这样有连续数组[br]百度上找了许多方法,在网络上用许多人用了execute这个方法来创建如"a1,a2,a3..."这样的连续变量,是可行的,于是我就用这个方法来创建连续的数组变量[br]arraystr=split("1|2|3,4|5|6,7|8|9",",")[br]for i=0 to ubound(arraystr)[br]   execute "a"&i&"=split("""&arraystr(i)&""",""|"")"[br]next[br][br]=========================================[br]后来又在网上找到了这篇文章[br][color=#05006c][b]vbscript中的eval()函数[br][/b][color=#000000]javascript中的eval函数让我们可以很方便地操作一系列变量(a1,a2,a3,……)。自从vbscript 5.0之后,我们也可以asp中使用这个功能了![br]     很感谢编程爱好者论坛上的朋友提出的难题,让我多学到了这个很有用的函数。[br]     和javascript一样,eval()也是计算其中字符串所代表变量的值并返回,如eval("a"&"1")返回a1的值。不过这个eval()的功能和javascript比起来还是有差距的。我试了一下,发现主要有以下一点:vbscript中的eval函数只能读取返回值而不能为其中所代表变量赋值,即我们不可以用eval("a"&"1")为a1赋值。[br]     那位朋友提出的问题,是将接收到的一个长字符串("2005081200507120050612005051")按7个字符为一组依次赋给一系列变量a1,a2,a3,…。 [br]     如果是赋值予数组,那我们可以建立动态数组:[br]     <%[br]     use="2005081200507120050612005051"[br]     dim myarray()[br]     redim myarray(0)[br]     for i=1 to len(use) step 7[br]         redim myarray(ubound(myarray)+1) [/color][color=#663300]'将数组容量加1[/color][br][color=#000000]         myarray(ubound(myarray))=mid(use,i,7)[br]     next[br]     %>[br]     现在要赋值给系列变量,我们得引入另外一个函数execute()。这个函数的作用是将其中字符串视为vbscript语句执行,如execute("a"&"1="&100")是执行以下语句:a1=100。[br]     据此,我们可以按那位朋友的要求写出以下代码:[br]     <%[br]     use="2005081200507120050612005051"[br]     dim n [/color][color=#663300]'作为变量a后的索引1,2,3,…[/color][br][color=#000000]     n=1[br]     for i=1 to len(use) step 7[br]         execute "dim a"&cstr(n)&":a"&cstr(n)&"="&mid(use,i,7)[br]        [/color][color=#663300]'执行语句dim a:a1=mid(use,i,7)[/color][br][/color][color=#000000]         n=n+1[br]     next[br]     %> [br]=======================================[br]这篇文章中提到了execute的用法[br]算是了解了eval和execute的区别[/color][/p]
 该文章在 2010/6/7 23:44:34 编辑过 | 关键字查询 相关文章 正在查询... |