Jak uzyskać typ zmiennej za pomocą VBScript?Pobierz typ zmiennej w VBScript
Odpowiedz
Czy VarType jest tym, czego potrzebujesz?
Powoduje zwrócenie wartości wskazującej podtyp zmiennej.
+--------------+-------+---------------------------------------------+
| Constant | Value | Description |
+--------------+-------+---------------------------------------------+
| vbEmpty | 0 | Empty (uninitialized) |
| vbNull | 1 | Null (no valid data) |
| vbInteger | 2 | Integer |
| vbLong | 3 | Long integer |
| vbSingle | 4 | Single-precision floating-point number |
| vbDouble | 5 | Double-precision floating-point number |
| vbCurrency | 6 | Currency |
| vbDate | 7 | Date |
| vbString | 8 | String |
| vbObject | 9 | Automation object |
| vbError | 10 | Error |
| vbBoolean | 11 | Boolean |
| vbVariant | 12 | Variant (used only with arrays of Variants) |
| vbDataObject | 13 | A data-access object |
| vbDecimal | 14 | Decimal Value |
| vbByte | 17 | Byte |
| vbLongLong | 20 | LongLong integer (64 bit) |
| vbArray | 8192 | Array |
+--------------+-------+---------------------------------------------+
Funkcja VarType nigdy nie zwraca wartość Array sama. To jest zawsze dodawane do pewnej innej wartości, aby wskazać tablicę określonego typu określonego jako . Wartość dla wariantu jest zwracana tylko wtedy, gdy została dodana wartość do tablicy Array, aby wskazać, że argument funkcji zmiennej VarType o numerze jest tablicą. Na przykład wartość zwrócona dla tablicy liczb całkowitych jest obliczana jako 2 + 8192 lub 8194. Jeśli obiekt ma właściwość domyślną, VarType (obiekt) zwraca typ jego domyślnej właściwości .
Jeśli chcesz uzyskać nazwę typu obiektu przypisany do zmiennej z Set
, można użyć zamiast TypeName
.
Class SomeClass
'' empty class
End Class
Dim x
Set x = New SomeClass
WScript.Echo TypeName(x) '' displays "SomeClass"
vartype jest właściwe ...
Dim x
x=123
msgbox VarType(x)
Dim a, b, c, d, e, f
a = 10
b = "text"
c = Split("John Doe,Jane Smith,Dick Tracy", ",")
d = 1.2
e = Null
f = True
MsgBox "'a' is " & fVarType(a) & vbNewLine & _
"'b' is " & fVarType(b) & vbNewLine & _
"'c' is " & fVarType(c) & vbNewLine & _
"'d' is " & fVarType(d) & vbNewLine & _
"'e' is " & fVarType(e) & vbNewLine & _
"'f' is " & fVarType(f) & vbNewLine & _
"'g' is " & fVarType(c(0))
Function fVarType(x)
Const ArrayCode = 8192
Dim y
y = VarType(x)
If y < ArrayCode Then
fVarType = fGetType(VarType(x))
Else
fVarType = "vbArray with " & fGetType(VarType(x)- ArrayCode) & " elements"
End If
End Function
Function fGetType(vType)
Select Case vType
Case 0 fGetType = "vbEmpty"
Case 1 fGetType = "vbNull"
Case 2 fGetType = "vbInteger"
Case 3 fGetType = "vbLong"
Case 4 fGetType = "vbSingle"
Case 5 fGetType = "vbDouble"
Case 6 fGetType = "vbCurrency"
Case 7 fGetType = "vbDate"
Case 8 fGetType = "vbString"
Case 9 fGetType = "vbObject"
Case 10 fGetType = "vbError"
Case 11 fGetType = "vbBoolean"
Case 12 fGetType = "vbVariant"
Case 13 fGetType = "vbDataObject"
Case 14 fGetType = "vbDecimal"
Case 17 fGetType = "vbByte"
Case Else fGetType = "undetected"
End Select
End Function
http://hastebin.com/sahanaqozo.avrasm O (1) ified to dla ciebie.^_^ – Dmitry
Tmdean „s odpowiedź działa również uzyskać nazwę typu (nie całkowita) z (prawie) wszystkie inne typy zmiennych (za http://msdn.microsoft.com/en-us/library/ie/y58s1cs6%28v=vs.84%29.aspx)
dim i,s,a
i = 1
s = "Hello world"
a = split("Hello World"," ")
WScript.Echo TypeName(i) 'Displays "Integer"
WScript.Echo TypeName(s) 'Displays "String"
WScript.Echo TypeName(a) 'Displays "Variant()"
Dim TypeDictionary
Set TypeDictionary = CreateObject("Scripting.Dictionary")
TypeDictionary.Add 0, "vbEmpty"
TypeDictionary.Add 1, "vbNull"
TypeDictionary.Add 2, "vbInteger"
TypeDictionary.Add 3, "vbLong"
TypeDictionary.Add 4, "vbSingle"
TypeDictionary.Add 5, "vbDouble"
TypeDictionary.Add 6, "vbCurrency"
TypeDictionary.Add 7, "vbDate"
TypeDictionary.Add 8, "vbString"
TypeDictionary.Add 9, "vbObject"
TypeDictionary.Add 10, "vbError"
TypeDictionary.Add 11, "vbBoolean"
TypeDictionary.Add 12, "vbVariant"
TypeDictionary.Add 13, "vbDataObject"
TypeDictionary.Add 17, "vbByte"
Public Function GetType(argument)
GetType = TypeDictionary.Item(VarType(argument))
End Function
Thi Wersja s inwestuje więcej wysiłku w konfigurowanie słownika, ale potem szuka dowolnego typu w jednym czeku (kciuki) zamiast sprawdzać każdy typ za każdym razem.
równoważny kod JScript (hipotetyczne, ponieważ JScript ma typeof i brakuje wielu VB typy):
var TypeDictionary = {
0: 'vbEmpty',
1: 'vbNull',
2: 'vbInteger',
3: 'vbLong',
4: 'vbSingle',
5: 'vbDouble',
6: 'vbCurrency',
7: 'vbDate',
8: 'vbString',
9: 'vbObject',
10: 'vbError',
11: 'vbBoolean',
12: 'vbVariant',
13: 'vbDataObject',
17: 'vbByte'
};
var GetType = function() {
return TypeDictionary[arguments[0]];
};
- 1. Typ zmiennej zmiennej (bajt)
- 2. Pobierz typ schowka w Electron
- 3. Pobierz STDOUT do zmiennej
- 4. Jawne generics - pobierz typ
- 5. Pobierz ostatnią literę ze zmiennej o zmiennej
- 6. Sprawdź typ zmiennej w FreeMarker
- 7. Uzyskaj typ zmiennej w bashu
- 8. typ wydruku zmiennej w Scali
- 9. Uzyskaj typ zmiennej w MySQL
- 10. Django - Pobierz typ pliku/typ MIME
- 11. Jak uzyskać typ zmiennej?
- 12. Java „świeży typ zmiennej”
- 13. Uzyskaj typ zmiennej
- 14. Jak zaimplementować tablicę w vbscript o zmiennej wielkości
- 15. pobierz xpath ze zmiennej xsl
- 16. Pobierz pierwszą literę zmiennej make
- 17. C# Pobierz typ wielowymiarowej tablicy
- 18. Pobierz typ MIME pliku Python
- 19. Typ sklepu w zmiennej do użycia jak typ później
- 20. SML Jak sprawdzić typ zmiennej?
- 21. sprawdzić typ zmiennej wewnątrz Jinja2 w Kolby
- 22. Jak uzyskać typ zmiennej w Maszynopisie?
- 23. Chcę uzyskać typ zmiennej w czasie wykonywania
- 24. Jak określić typ zmiennej w funkcji vim?
- 25. Jak zmienić typ zmiennej w C#?
- 26. Jak wyświetlić typ zmiennej w PL/SQL?
- 27. Definiowanie typ zmiennej w Netbeans PHP
- 28. Typ zmiennej pierwotnej w czasie kompilacji
- 29. Skąd znasz typ zmiennej w java?
- 30. Listy w VBScript
VarType (indeks) zwraca 8. Co to oznacza. –
8 = vbString - wskazuje ciąg znaków (z linku w mojej odpowiedzi) –
Pozdrawiam. Zdrowy rozsądek powinien był powiedzieć, aby to sprawdzić przed pytaniem. Przepraszam. + Rep. –