execute() not working | | |
Hello,
I have this code:
__________________________________________________ ______
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
What should be the problem? | | | | re: execute() not working
<iulian.ilea@gmail.comwrote in message
news:1160731752.508386.129980@k70g2000cwa.googlegr oups.com... Quote:
Hello,
>
I have this code:
__________________________________________________ ______
>
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
>
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
>
What should be the problem?
>
The problem is your using Execute and Eval. Stop using them. Make inTotal
into an array then you don't need them. If arr(4, i1) returns a string then
use a Scripting.Dictionary object to store a name/value pairs.
Slap this in a VBS file and take a look at how it works:-
Dim arr_(2,2)
Dim temp
Dim Key
Dim i, j
Dim inTotal
For i = 0 to 2
arr_(0,i) = "ListOfValues" & i
arr_(1,i) = i
arr_(2,i) = i * 2
Next
Set inTotal = CreateObject("Scripting.Dictionary")
For i = LBound(arr_, 2) to UBound(arr_, 2)
temp = 0
For j = 1 To UBound(arr_, 1)
temp = temp + arr_(j, i)
Next
inTotal(arr_(0,i)) = inTotal(arr_(0,i)) + temp
Next
For Each Key In inTotal
MsgBox Key & " Total = " & inTotal(Key)
Next
Anthony. | | | | re: execute() not working
I have to use those two (eval and execute), I have no other way to
resolve this because I can have 20 variables or more, just one or none.
So, obviously that I don't know what variables to define. I use option
explicit so it is mandatory to define them.
Another solution is to define an array with n elements (i.e.: arr(58))
and use only some of them (i.e.: arr(1), arr(32)) but in this case I
load in memory a full array. Is not a very good solution.
By the way: I made it work in the way I wanted.
Anthony Jones wrote: Quote:
<iulian.ilea@gmail.comwrote in message
news:1160731752.508386.129980@k70g2000cwa.googlegr oups.com... Quote:
Hello,
I have this code:
__________________________________________________ ______
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
What should be the problem?
>
The problem is your using Execute and Eval. Stop using them. Make inTotal
into an array then you don't need them. If arr(4, i1) returns a string then
use a Scripting.Dictionary object to store a name/value pairs.
>
Slap this in a VBS file and take a look at how it works:-
>
Dim arr_(2,2)
Dim temp
Dim Key
Dim i, j
Dim inTotal
>
For i = 0 to 2
arr_(0,i) = "ListOfValues" & i
arr_(1,i) = i
arr_(2,i) = i * 2
Next
>
Set inTotal = CreateObject("Scripting.Dictionary")
>
For i = LBound(arr_, 2) to UBound(arr_, 2)
temp = 0
For j = 1 To UBound(arr_, 1)
temp = temp + arr_(j, i)
Next
inTotal(arr_(0,i)) = inTotal(arr_(0,i)) + temp
Next
>
For Each Key In inTotal
MsgBox Key & " Total = " & inTotal(Key)
Next
>
Anthony.
| | | | re: execute() not working
<iulian.ilea@gmail.comwrote in message
news:1160759384.724751.134070@e3g2000cwe.googlegro ups.com... Quote:
I have to use those two (eval and execute), I have no other way to
resolve this because I can have 20 variables or more, just one or none.
So, obviously that I don't know what variables to define. I use option
explicit so it is mandatory to define them.
>
Another solution is to define an array with n elements (i.e.: arr(58))
and use only some of them (i.e.: arr(1), arr(32)) but in this case I
load in memory a full array. Is not a very good solution.
>
By the way: I made it work in the way I wanted.
Each to his own. But arr(58) would've been better it equates to ;ess than
1KB of memory and will significantly out perform Executes and Evals. Quote:
>
Anthony Jones wrote: Quote:
<iulian.ilea@gmail.comwrote in message
news:1160731752.508386.129980@k70g2000cwa.googlegr oups.com... Quote:
Hello,
>
I have this code:
__________________________________________________ ______
>
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
>
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
>
What should be the problem?
>
The problem is your using Execute and Eval. Stop using them. Make
inTotal Quote: Quote:
into an array then you don't need them. If arr(4, i1) returns a string
then Quote: Quote:
use a Scripting.Dictionary object to store a name/value pairs.
Slap this in a VBS file and take a look at how it works:-
Dim arr_(2,2)
Dim temp
Dim Key
Dim i, j
Dim inTotal
For i = 0 to 2
arr_(0,i) = "ListOfValues" & i
arr_(1,i) = i
arr_(2,i) = i * 2
Next
Set inTotal = CreateObject("Scripting.Dictionary")
For i = LBound(arr_, 2) to UBound(arr_, 2)
temp = 0
For j = 1 To UBound(arr_, 1)
temp = temp + arr_(j, i)
Next
inTotal(arr_(0,i)) = inTotal(arr_(0,i)) + temp
Next
For Each Key In inTotal
MsgBox Key & " Total = " & inTotal(Key)
Next
Anthony.
>
| | | | re: execute() not working
obviously we can't help as we don't know what line 308 is.....
<iulian.ilea@gmail.comwrote in message news:1160731752.508386.129980@k70g2000cwa.googlegr oups.com... Quote:
Hello,
>
I have this code:
__________________________________________________ ______
>
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
>
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
>
What should be the problem?
>
| | | | re: execute() not working
Anthony Jones wrote: Quote:
<iulian.ilea@gmail.comwrote in message
news:1160759384.724751.134070@e3g2000cwe.googlegro ups.com... Quote:
I have to use those two (eval and execute), I have no other way to
resolve this because I can have 20 variables or more, just one or none.
So, obviously that I don't know what variables to define. I use option
explicit so it is mandatory to define them.
Another solution is to define an array with n elements (i.e.: arr(58))
and use only some of them (i.e.: arr(1), arr(32)) but in this case I
load in memory a full array. Is not a very good solution.
By the way: I made it work in the way I wanted.
>
Each to his own. But arr(58) would've been better it equates to ;ess than
1KB of memory and will significantly out perform Executes and Evals.
>
> Quote:
Anthony Jones wrote: Quote:
<iulian.ilea@gmail.comwrote in message
news:1160731752.508386.129980@k70g2000cwa.googlegr oups.com...
Hello,
I have this code:
__________________________________________________ ______
if VarType(eval("inTotal" & arr(4,i1)))=0 then
response.write "ok, dim"
execute("dim inTotal" & arr(4,i1) & ":inTotal" & arr(4,i1) & "=" &
arr_(i1,i2))
'it is working, I have variable
else
execute("inTotal" & arr(4,i1) & " = inTotal" & arr(4,i1) & " + " &
arr_(i1,i2))
'here is not working any more.
end if
__________________________________________________ ______
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/test.asp, line 308
What should be the problem?
>
The problem is your using Execute and Eval. Stop using them. Make
inTotal Quote: Quote:
into an array then you don't need them. If arr(4, i1) returns a string
then Quote: Quote:
use a Scripting.Dictionary object to store a name/value pairs.
>
Slap this in a VBS file and take a look at how it works:-
>
Dim arr_(2,2)
Dim temp
Dim Key
Dim i, j
Dim inTotal
>
For i = 0 to 2
arr_(0,i) = "ListOfValues" & i
arr_(1,i) = i
arr_(2,i) = i * 2
Next
>
Set inTotal = CreateObject("Scripting.Dictionary")
>
For i = LBound(arr_, 2) to UBound(arr_, 2)
temp = 0
For j = 1 To UBound(arr_, 1)
temp = temp + arr_(j, i)
Next
inTotal(arr_(0,i)) = inTotal(arr_(0,i)) + temp
Next
>
For Each Key In inTotal
MsgBox Key & " Total = " & inTotal(Key)
Next
>
Anthony.
Anthony, if I use arr(n) is more efficiently than using execute("dim
var...") ? |  | Similar ASP / Active Server Pages bytes | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,471 network members.
|