Platforms to show: All Mac Windows Linux Cross-Platform
FAQ - Graphics.How to query variant type string for a variant?
Public Function VariantTypeString(v as Variant) as string // Xojo's VarType doesn't know Unsigned integers 'Dim type As Integer = VarType(v) // MBS VarType can detect unsigned integer Dim type As Integer = GetVariantTypeMBS(v) Dim IsArray As Boolean = BitwiseAnd(type, Variant.TypeArray) = Variant.TypeArray // type without array type = BitwiseAnd(type, Bitwise.OnesComplement(Variant.TypeArray)) // build a dictionary to map types on first call Static TypeMap As Dictionary If TypeMap = Nil Then TypeMap = New Dictionary TypeMap.Value(Variant.TypeBoolean) = "Boolean" TypeMap.Value(Variant.TypeCFStringRef) = "CFStringRef" TypeMap.Value(Variant.TypeColor) = "Color" TypeMap.Value(Variant.TypeCString) = "CString" TypeMap.Value(Variant.TypeCurrency) = "Currency" TypeMap.Value(Variant.TypeDate) = "Date" TypeMap.Value(Variant.TypeDateTime) = "DateTime" TypeMap.Value(Variant.TypeDouble) = "Double" TypeMap.Value(Variant.TypeInt32) = "Int32" TypeMap.Value(Variant.TypeInt64) = "Int64" TypeMap.Value(Variant.TypeInteger) = "Integer" TypeMap.Value(Variant.TypeNil) = "Nil" TypeMap.Value(Variant.TypeObject) = "Object" TypeMap.Value(Variant.TypeOSType) = "OSType" TypeMap.Value(Variant.TypePString) = "PString" TypeMap.Value(Variant.TypePtr) = "Ptr" TypeMap.Value(Variant.TypeSingle) = "Single" TypeMap.Value(Variant.TypeString) = "String" TypeMap.Value(Variant.TypeStructure) = "Structure" TypeMap.Value(Variant.TypeText) = "Text" TypeMap.Value(Variant.TypeWindowPtr) = "WindowPtr" TypeMap.Value(Variant.TypeWString) = "WString" // MBS extra types TypeMap.Value(Variant.TypeInt32+100) = "UInt32" TypeMap.Value(Variant.TypeInt64+100) = "UInt64" End If // lookup type #if DebugBuild then If Not TypeMap.HasKey(type) Then Break // missing type End If #endif If IsArray Then Return "Array of " + TypeMap.Lookup(type,"?") Else Return TypeMap.Lookup(type,"?") End IfEnd Function
See also: