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