Service Functions - String (QTP, VBScript)

Categories: Function libraryText Data

In the code examples I present I often refer to routine functions.

In my framework I have specialized libraries to call from. In my blog I maintain the similar structure.

Matching string with a pattern (Regular Expression, RegEx)

Public Function Regex_Test(ByVal strSrc, ByVal strRegEx)
 Dim objRegEx
 Dim boolRC, intRC
 Set objRegEx = New RegExp 
 objRegEx.Pattern = strRegEx
 On Error Resume Next
 boolRC = objRegEx.Test(strSrc)
 intRC = Err.Number
 On Error GoTo 0
 If intRC <> 0 Then boolRC = False
 Set objRegEx = Nothing
 Regex_Test = boolRC
End Function

 

Public Function Regex_Match(ByVal sSource, ByVal sPattern, ByVal intIndex, ByVal boolMatchCase)
 Dim objRegExp, objMatchColl
 Dim boolRC, intRC
 If intIndex < 0 Then
 intIndex = 0
 End If
 Set objRegExp = new RegExp
 objRegExp.Global = TRUE
 objRegExp.IgnoreCase = Not boolMatchCase
 objRegExp.Pattern = sPattern
 On Error Resume Next
 boolRC = objRegExp.Test(sSource)
 intRC = Err.Number
 On Error GoTo 0
 If intRC <> 0 Then boolRC = FALSE
 If Not boolRC Then
 Set objRegExp = Nothing
 Regex_Match = ""
 Exit Function
 End If
 Set objMatchColl = objRegExp.Execute(sSource)
 If (intIndex+1) > objMatchColl.Count Then
 Set objMatchColl = Nothing
 Set objRegExp = Nothing
 Regex_Match = ""
 Exit Function
 End If
 Regex_Match = objMatchColl.Item(intIndex).Value
 Set objMatchColl = Nothing
 Set objRegExp = Nothing
End Function

Replace pattern(s) in a string

Public Function ReplaceEx(ByVal sSource, ByVal sPattern, ByVal sDest, ByVal boolMatchCase)
 Dim objRegExp
 If sPattern = "" Then
 ReplaceEx = sSource
 Exit Function
 End If
 Set objRegExp = new RegExp
 objRegExp.Global = TRUE
 objRegExp.IgnoreCase = Not boolMatchCase
 objRegExp.Pattern = sPattern
 ReplaceEx = objRegExp.Replace(sSource, sDest)
 Set objRegExp = Nothing
End Function

Number conversion and initialization with a default value

Public Function IntVal(ByVal sVal)
 If isNumeric(sVal) Then
 IntVal = CLng(sVal)
 Else
 IntVal = 0
 End If
End Function

 

Public Function InitLong(ByVal sActualValue, ByVal DefaultValue)
 DefaultValue = IntVal(DefaultValue)
 If sActualValue = "" Then
 InitLong = DefaultValue
 Else
 If isNumeric(sActualValue) Then
 InitLong = CLng(sActualValue)
 Else
 InitLong = DefaultValue
 End If
 End If
End Function

Initialize string with a default value

Public Function InitValue(ByVal sActualValue, ByVal DefaultValue)
 If sActualValue = "" Then
 InitValue = DefaultValue
 Else
 InitValue = sActualValue
 End If
End Function

Initialize boolean with a default value

Public Function InitBool(ByVal sActualValue, ByVal boolDefaultValue)
 sActualValue = UCase(sActualValue)
 Select Case boolDefaultValue
 Case TRUE
 'By default set to TRUE
 'Set to FALSE if explicitely defined
 If (sActualValue = "FALSE") OR (sActualValue = "NO") Then
 InitBool = FALSE
 Else
 InitBool = TRUE
 End If
 Case FALSE
 'By default set to FALSE
 'Set to TRUE if explicitely defined
 If (sActualValue = "TRUE") OR (sActualValue = "YES") Then
 InitBool = TRUE
 Else
 InitBool = FALSE
 End If
 End Select
End Function

Questions / Answers

How to trim words inside a text line (QTP, VBScript)

How to wrap text line (QTP, VBScript)

Inserting breaks into text line

Additional Functions

GetTokenByNumber

GetTokenByKeyword


  • 2 responses to "Service Functions - String (QTP, VBScript)"

  • Jill
    9th February 2010 at 9:47

    Hi Author!

    Can you email me a QTP function that wraps line of text without breaking words?

    Thank you!

    [Author's reply.
    I actually didn’t have that function in my QTP libraries. Enjoyed working on this little exercise :)
    Here we go: How to wrap text line ]

  • Raj
    10th February 2010 at 12:01

    hello,

    What QTP function i can use to trim inside string? For e.g. “text text text text” - i want only 1 space between.

    Thanks!

    [Author's reply.
    Raj, there is no such function but you can easily implement that in a variety of ways. Choose best for your context.
    Sample solutions are here: How to trim words inside a text line ]

Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by the author is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.