lcAPN = "123456A-B789012C-D345678EF-GH901234I-KLMNOP" >?(lcApn= TRANSFORM(lcAPN, "999999X-X999999X-X999999XX-XX999999X-XXXXXX")) >lcAPN = "ABCDEF1-2DEFGHI3-4JKLMNO56-78PQRSTU9-012345" >?(lcApn= TRANSFORM(lcAPN, "999999X-X999999X-X999999XX-XX999999X-XXXXXX"))Yep, doesn't work.
******************************************************************** * Description.......: ValidateAPN1 * Calling Samples...: ValidateAPN1(APN) * Parameter List....: * Created by........: Sergey Berezniker * Modified by.......: Nadya Nosonovsky 08/10/2000 04:47:29 PM ******************************************************************** lparameters pcAPN local lcMask, lcDigits, lcLetters, lcAPNUniform lcMask = "999999X-X999999X-X999999XX-XX999999X" *lcAPN = "000000 - 001000 - 000000 - 000000" lcApn = padr(ltrim(pcAPN),36) lcDigits = "0123456789" lcLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ " lcAPNUniform = chrtran( lcAPN, lcDigits+lcLetters, ; replicate("9", 10)+ replicate("X", 27)) *wait window lcAPNUniform+' lcMask:'+lcMask+" lcAPN:"+substr(lcAPN,37,1) return (left(lcAPNUniform,36) = lcMask and inlist(substr(lcAPN,37,1)," ","-"))I also made time comparision with our original UDF (which I also made more efficient) and this UDF, and Sergey's function ~3 times faster in 1000 loop.