Chcę użyć tablicy, którą deklaruję raz na górze mojego kodu kilka razy. Dawny.Czy możesz zadeklarować stałą tablicę w VBScript?
Const Quarters = [ "Q1", "Q2", "Q3", "Q4"]
Dla każdego q Quarter q.Do popracować
Itd
może to zrobić w VBScript?
Chcę użyć tablicy, którą deklaruję raz na górze mojego kodu kilka razy. Dawny.Czy możesz zadeklarować stałą tablicę w VBScript?
Const Quarters = [ "Q1", "Q2", "Q3", "Q4"]
Dla każdego q Quarter q.Do popracować
Itd
może to zrobić w VBScript?
Tablica jest wynikiem wywołania funkcji (Array()
) w języku VBScript. Można wprowadzać tylko wartości literalne Const
. A więc: Nie, nie możesz.
Prosta odpowiedź: nie. Tablicy nie można utworzyć const
.
Dlaczego po prostu nie zadeklarować tablicy jako publicznej, a następnie przydzielić tablicę podczas uruchamiania skryptu?
Public myArray(3)
arrQuarters = Array("Q1", "Q2", "Q3", "Q4")
For Each Quarter in arrQuarters
wscript.echo Quarter
Next
Można zdefiniować funkcję zwracania tablicy, która ma być używana jako stała. Na przykład:
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
Oto DOBRA odpowiedź. Chociaż nie można zadeklarować stałej tablicy, istnieje obejście: zdefiniuj ją jako funkcję. – Stephan
krótszy i mniej rozwiązanie podatne na błędy byłoby:
Dim arr
arr = Split("Q1 Q2 Q3 Q4") : ubd = UBound(arr)
' Implied separator is " " aka 040 octal aka 32 Dec aka 020 Hex.
Jeśli dane mogą zawierać spacji:
arr = Split("Le Sage,ne pleure,ni les vivants, ni les morts", ",")
ubd = UBound(arr)
' arr(2), for instance, now contains "ni les vivants"
UWAGA: Nigdy nie wybrać separator, które mogłyby występują w twoich "atomowych" łańcuchach danych, lub funkcja ta zostanie podzielona na ten separator w środku pojedynczego fragmentu danych.
Możesz odczekać trochę czasu (> 5 minut), zanim zaznaczysz pytanie, na które odpowiedziano, aby więcej osób mogło zasugerować ... ;-) – Dscoduc
Dlaczego? Na to pytanie odpowiedziano (zawsze mogę to zaznaczyć jako takie). – user45492