PDA

View Full Version : [VbScript] Creare una condizione dinamica


robertino_salemi
13-09-2016, 09:06
Buongiorno a tutti,
l'ho sempre fatto in PHP o C#, ma qui non riesco.

Vorrei creare un IF dinamico, cioe' con due condizioni se una variabile e' popolata.

Mi spiego:

If cond1 = True & cond2 = True Then
.....
End If


cond1 e' sempre fissa

cond2 invece e' dinamica, vorrei che si basasse su una variabile esterna externalVar


If externalVar <> "" Then
cond2 = " and %currentVal% = " & externalVar & " "
Else
cond2 = ""


cosi' da usarla nell'IF principale utilizzo la cond2 sostituendo un valore dinamicamente.


If cond1 = True & Replace(cond2 , "%currentVal%", currentVal) Then

End If


Purtroppo cosi' facendo questa non e' mai TRUE, forse perche' viene vista solo come una stringa?

Grazie.

!fazz
13-09-2016, 15:03
Buongiorno a tutti,
l'ho sempre fatto in PHP o C#, ma qui non riesco.

Vorrei creare un IF dinamico, cioe' con due condizioni se una variabile e' popolata.

Mi spiego:

If cond1 = True & cond2 = True Then
.....
End If


cond1 e' sempre fissa

cond2 invece e' dinamica, vorrei che si basasse su una variabile esterna externalVar


If externalVar <> "" Then
cond2 = " and %currentVal% = " & externalVar & " "
Else
cond2 = ""


cosi' da usarla nell'IF principale utilizzo la cond2 sostituendo un valore dinamicamente.


If cond1 = True & Replace(cond2 , "%currentVal%", currentVal) Then

End If


Purtroppo cosi' facendo questa non e' mai TRUE, forse perche' viene vista solo come una stringa?

Grazie.

esattamente per quello cond2 è una stringa e viene valutata per quello che è devi usare eval
https://msdn.microsoft.com/en-us/library/0z5x4094(v=vs.84).aspx

robertino_salemi
13-09-2016, 15:55
Immaginavo, ma ci credi che comunque non so neanche io come mai mi sono creato una procedura cosi' contorta?

Ho alla fine utilizzato un IF strutturato meglio:

If cond1 = True and (externalVar <> "" and currentVal = externalVar) Then

End If


Grazie.

!fazz
13-09-2016, 16:44
Immaginavo, ma ci credi che comunque non so neanche io come mai mi sono creato una procedura cosi' contorta?

Ho alla fine utilizzato un IF strutturato meglio:

If cond1 = True and (externalVar <> "" and currentVal = externalVar) Then

End If


Grazie.

sicuramente un if meglio strutturato è la soluzione più logica ed elegante

robertino_salemi
13-09-2016, 22:11
Si infatti! :D