ASP学习:VBScript中的eval()函数

王朝asp·作者佚名  2006-11-24
宽屏版  字体: |||超大  

Javascript中的eval函数让我们可以很方便地操作一系列变量(a1,a2,a3,……)。自从VBScript 5.0之后,我们也可以ASP中使用这个功能了!

很感谢编程爱好者论坛上的朋友提出的难题,让我多学到了这个很有用的函数。

和Javascript一样,eval()也是计算其中字符串所代表变量的值并返回,如eval("a"&"1")返回a1的值。不过这个eval()的功能和Javascript比起来还是有差距的。我试了一下,发现主要有以下一点:VBScript中的eval函数只能读取返回值而不能为其中所代表变量赋值,即我们不可以用eval("a"&"1")为a1赋值。

那位朋友提出的问题,是将接收到的一个长字符串("2005081200507120050612005051")按7个字符为一组依次赋给一系列变量a1,a2,a3,…。

如果是赋值予数组,那我们可以建立动态数组:

<%

use="2005081200507120050612005051"

dim myarray()

reDim myarray(0)

for i=1 to Len(use) step 7

reDim myarray(ubound(myarray)+1) '将数组容量加1

myarray(ubound(myarray))=mid(use,i,7)

next

%>

现在要赋值给系列变量,我们得引入另外一个函数execute()。这个函数的作用是将其中字符串视为VBScript语句执行,如execute("a"&"1="&100")是执行以下语句:a1=100。

据此,我们可以按那位朋友的要求写出以下代码:

<%

use="2005081200507120050612005051"

dim n '作为变量a后的索引1,2,3,…

n=1

for i=1 to Len(use) step 7

execute "dim a"&CStr(n)&":a"&CStr(n)&"="&mid(use,i,7)

'执行语句dim a:a1=mid(use,i,7)

n=n+1

next

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有