2009-02-10 40 views
7

Quiero usar una matriz que declaro una vez en la parte superior de mi código varias veces. Ex.¿Puede declarar una matriz constante en VBScript?

Const Quarters = [ "P1", "P2", "P3", "P4"]

Para cada trimestre q q.Do algún trabajo

Etc.

Puede este hacerse en VBScript?

+2

Es posible que desee esperar un poco (> 5 minutos) antes de marcar una pregunta como respondida para permitir que más personas hagan sugerencias ... ;-) – Dscoduc

+2

¿Por qué? La pregunta fue respondida (siempre puedo anular la marca como tal). – user45492

Respuesta

10

Una matriz es el resultado de una llamada a la función (Array()) en VBScript. Solo se pueden hacer valores literales Const. Entonces: No, no puedes.

2

Respuesta simple: no. La matriz no se puede hacer const.

6

¿Por qué no declarar la matriz como pública y luego asignar la matriz durante el inicio de la secuencia de comandos?

Public myArray(3) 
arrQuarters = Array("Q1", "Q2", "Q3", "Q4") 

For Each Quarter in arrQuarters 
    wscript.echo Quarter 
Next 
3

Puede definir una función para devolver la matriz que desea usar como una constante. Por ejemplo:

For Each q in AllQuarters 
    wscript.echo q 
Next 

wscript.echo "element 0 = " & AllQuarters()(0) 

AllQuarters()(0) = "X1" 

wscript.echo "element 0 still = " & AllQuarters()(0) 


Function AllQuarters() 
    AllQuarters = Array("Q1","Q2","Q3","Q4") 
End Function 
+0

Aquí está la BUENA respuesta. Aunque no puede declarar una matriz constante, existe una solución alternativa: defínalo como una función. – Stephan

1

A más corto y solución menos propenso a errores sería:

Dim arr 
arr = Split("Q1 Q2 Q3 Q4") : ubd = UBound(arr) 
' Implied separator is " " aka 040 octal aka 32 Dec aka 020 Hex. 

Si sus datos podrían contener espacios:

arr = Split("Le Sage,ne pleure,ni les vivants, ni les morts", ",") 
ubd = UBound(arr) 
' arr(2), for instance, now contains "ni les vivants" 

Precaución: Nunca elija un separador que podría ocurrir en sus cadenas de datos 'atómicas', o la función se dividirá en ese separador en medio de una sola pieza de datos.

Cuestiones relacionadas