## QTP Math functions – Convert Set to Typed Array

Posted by Albert Gareev on Mar 20, 2008 | Categories: MathSource code

Parent page: Service Functions – Math (QTP, VBScript)

#### Convert set to typed array

```Public Function Set2TypedArray(ByVal stSet, ByVal sSetSeparator, ByVal sFormat)
Dim Iter, dvArray

If sSetSeparator = "" Then
sSetSeparator = chrSetSeparator
End If

stSet = Replace(stSet, "\,", Chr(176))
stSet = Replace(stSet, "\ ", Chr(187))

dvArray = Split(stSet, sSetSeparator)
For Iter=0 To UBound(dvArray)
Select Case UCase(sFormat)
Case "NUMBER"
dvArray(Iter) = DblVal(Replace(Replace(Trim(dvArray(Iter)), Chr(176), ""), Chr(187), ""))
Case "DATE"
dvArray(Iter) = DateVal(Replace(Replace(Trim(dvArray(Iter)), Chr(176), ""), Chr(187), ""))
Case "STRING"
dvArray(Iter) = CStr(Replace(Replace(Trim(dvArray(Iter)), Chr(176), ","), Chr(187), " "))
Case Else
dvArray(Iter) = Replace(Replace(Trim(dvArray(Iter)), Chr(176), ","), Chr(187), " ")
End Select
Next

Set2TypedArray = dvArray
End Function
```

#### Unit Tests

```  dvArray = Set2TypedArray("1.0,-2, 3 5", ",", "Number")
If dvArray(0) <> 1 Then
Log.Error("Set2TypedArray failed")
End If
If dvArray(2) <> 0 Then
Log.Error("Set2TypedArray failed")
End If
dvArray = Set2TypedArray("1.0,-2, 3 5", ",", "String")
If dvArray(0) <> "1.0" Then
Log.Error("Set2TypedArray failed")
End If
If dvArray(2) <> "3 5" Then
Log.Error("Set2TypedArray failed")
End If
dvArray = Set2TypedArray("1.0,-2\,, \ 3 5", ",", "String")
If dvArray(0) <> "1.0" Then
Log.Error("Set2TypedArray failed")
End If
If dvArray(2) <> " 3 5" Then
Log.Error("Set2TypedArray failed")
End If
dvArray = Set2TypedArray("1.0,-2\,, \ 3 5", ",", "Number")
If dvArray(0) <> 1 Then
Log.Error("Set2TypedArray failed")
End If
If dvArray(1) <> -2 Then
Log.Error("Set2TypedArray failed")
End If
dvArray = Set2TypedArray("1.0,-2\,a, \ 3 5 , abc, 12/10/2001", ",", "")
If dvArray(1) <> "-2,a" Then
Log.Error("Set2TypedArray failed")
End If

```