Micro Focus QTP (UFT) Forums
How to validate a format of an alphanumeric string - Printable Version

+- Micro Focus QTP (UFT) Forums (https://www.learnqtp.com/forums)
+-- Forum: Micro Focus UFT (earlier known as QTP) (https://www.learnqtp.com/forums/Forum-Micro-Focus-UFT-earlier-known-as-QTP)
+--- Forum: VB Scripting/Descriptive Programming (https://www.learnqtp.com/forums/Forum-VB-Scripting-Descriptive-Programming)
+--- Thread: How to validate a format of an alphanumeric string (/Thread-How-to-validate-a-format-of-an-alphanumeric-string)



How to validate a format of an alphanumeric string - PrateepKaraval - 11-07-2014

Hello Everyone,

I have a webtable with strings as follows:

NA / 123456789
REV / 1239359
GEM / G000018017
472 / 1233574
106 / 1233000171

The client wants me to validate the format of the strings above.
The format is XX* / XXXX*

Rules of Format: MSP Client # / Loan Number
.there is a space before and after the /
.the MSP # can be 2 or 3 characters of alphanumeric
.the / forwardslash is always present between the MSP and Loan #
.the Loan Number can be from 4 - 10 characters of alphanumeric

With the rules being said I have searched up and down many places to find the appropriate method for my string format check.
There were no VBScript functions that were specific to my needs.
I then decided to make my own by creating a regular expression string using the Regular expression evaluator and made sure the regexp is matching the string.
Here it is:
Code:
Dim Format
Set Myp = Browser("Title:=.*").Page("Title:=.*")
Set Myo = Description.Create()
    myo("name").Value = "case"
    RC = Myp.WebTable(myo).RowCount
    RCstop = RC - 1
    Environment.Value("RRC") = RC - 3
    Environment.Value("Counter") = 0
    Environment.Value("FCounter") = 0
    
    For i = 3 to RCstop
        Format = Myp.WebTable(myo).GetCellData(i,3) 'WPP / 1236547896 is the actual
    
        If Format = "\w.*\s\/\s.*"Then
                Environment.Value("Counter") = Environment("Counter") + 1
            Else
                Environment.Value("FCounter") = Environment("FCounter") + 1
                Reporter.ReportEvent micFail, "Row " & i, "The Loan Number " & Format & " data format is incorrect."
        End If
    Next

As you can see in my code the string "WPP / 1236547896" should match regexp string "\w.*\s\/\s.*", but step is failing for all rows.

Please help with this. Thank you


RE: How to validate a format of an alphanumeric string - PrateepKaraval - 11-07-2014

Hi Folks,
I have solved my problem.
Though I will not be able to explain myself, I took a piece of code and experimentally made it plug in with my scenario.
Here it is:
Code:
Dim Format, matches, regexp
Set Myp = Browser("Title:=.*").Page("Title:=.*")
Set Myo = Description.Create()
    myo("name").Value = "case"
    RC = Myp.WebTable(myo).RowCount
    RCstop = RC - 1
    Environment.Value("RRC") = RC - 3
    Environment.Value("Counter") = 0
    Environment.Value("FCounter") = 0

    For i = 3 to RCstop
        Format = Myp.WebTable(myo).GetCellData(i,3)
    Call RegExpTest("\w.*\s\/\s.*", format)

        If Format = Environment("check") Then
                Environment.Value("Counter") = Environment("Counter") + 1
            Else
                Environment.Value("FCounter") = Environment("FCounter") + 1
                Reporter.ReportEvent micFail, "Row " & i, "The Loan Number " & Format & " data format is incorrect."
        End If
    Next
Call fn_StepResult(Environment("Counter"),Environment("RRC"),0,1,"Step 10.1","Pass: All of the " & Environment("RRC") & " records have been validated to check for correct MSP client / Loan # format and are as expected.","Fail: In the Loan Number column out of " & Environment("RRC") & "records, " & Environment("FCounter") & " records have the incorrect MSP client # / Loan Number format, for more details view the actual results to see what the loan number are.")


Public Function RegExpTest (patrn, strng)
   Dim regEx, Match, Matches, retstr  
   Set regEx = New RegExp  
   regEx.Pattern = patrn  
   regEx.IgnoreCase = True  
   regEx.Global = True  
   Set Matches = regEx.Execute(strng)   '

  For Each Match in Matches  
     RetStr = Match.Value
   Next
Environment.Value("check") = RetStr
End Function

Please feel free to come up with the best answer, I am still open to any suggestions, thanks

-Prateep K.
Banglore, India


RE: How to validate a format of an alphanumeric string - vinod123 - 11-08-2014

It is good to see that coming with solution for yourself without posting for all small doubts. So keep up the good work