Max Wanadoo
max.wanadoo at gmail.com
Tue Mar 25 11:14:55 CDT 2008
You might not want this then, but it is an alternative.
Max
Function tryRegEx()
Dim lngResult As Long, strPwd As String
strPwd = "~12+#xyz"
lngResult = (RegExpTest("\W", strPwd)) ' uppercase W ( Matches any
nonword character)
If lngResult > 0 Then MsgBox "Test 1: " & lngResult & " matched - as
non-alph"
lngResult = (RegExpTest("\w", strPwd)) ' lowecase w ( Matches any word
character))
If lngResult > 0 Then MsgBox "Test 2: " & lngResult & " matched as alpha"
lngResult = (RegExpTest("\d", strPwd)) ' lowercase d ( Matches any
decimal digit.)
If lngResult > 0 Then MsgBox "Test 3: " & lngResult & " matched - as
decimal"
End Function
Function RegExpTest(patrn, strng) As Long
' Set reference to Microsoft vbscript regular expressions 5.5
' Cheat Sheet available at http://regexlib.com/CheatSheet.aspx
Dim RegEx As New VBScript_RegExp_55.RegExp
Dim Match, Matches, RetStr ' Create variable.
Set RegEx = New RegExp ' Create a regular expression.
RegEx.Pattern = patrn ' Set pattern.
RegEx.IgnoreCase = True ' Set case insensitivity.
RegEx.Global = True ' Set global applicability.
Set Matches = RegEx.Execute(strng) ' Execute search.
RegExpTest = 0
For Each Match In Matches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'." & vbCrLf
RegExpTest = RegExpTest + 1
Next
End Function
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Tuesday, March 25, 2008 3:55 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Find characters in one string that areinanother:w
asRE: Treat string as array
Just an update, I have integrated Gustav's solution in my LWS and now have
password rule checking in place.
John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Tuesday, March 25, 2008 11:15 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Find characters in one string that are inanother:w
asRE: Treat string as array
But John, didn't you see Gustav's response very early on in the thread
suggesting you use StrConv? Armed with that clue your dream of using a
simple for next loop is easily achieved...
Function StringArray(str As String) As Variant Dim byArray() As Byte
byArray = StrConv(str, vbFromUnicode)
StringArray = byArray
End Function
Sub PlayWithStringArray(str As String)
Dim byArray() As Byte
Dim c As Variant
byArray = StringArray(str)
For Each c In byArray()
Debug.Print c; " "; Chr(c);
Next c
Debug.Print vbCrLf; str
End Sub
You're on the money though about the number of answers that seemed not to be
connected with the question! :-)
Lambert
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Tuesday, March 25, 2008 11:01 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Find characters in one string that are in
another:wasRE: Treat string as array
LOL.
Turn a string into an array. Turn a string into an ARRAY. TURN A STRING
INTO AN ARRAY.
That was my question. Why I want to do it is irrelevant.
And yea, Regex probably would work, but I did not have time to spend a week
learning a useful but EXTREMELY arcane syntax to solve a 5 minute problem.
In fact I didn't have time to answer 25 suggestions having nothing to do
with TURNING A STRING INTO AN ARRAY.
Sigh.
;-)
John W. Colby
Colby Consulting
www.ColbyConsulting.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com