ASP學習:VBScript中的eval()函數
來源:互聯網
上載者:User
vbscript|函數 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
%>