A.D.Tejpal
adtp at airtelmail.in
Tue Mar 25 02:06:57 CDT 2008
A very concise version of Function Fn_ConvStringToArray(), using only a single statement, is placed below. It returns an array, so that individual characters of input string get placed in individual elements of the array.
Note - In fact, right side of assignment statement (A) below, can be used directly, as it is made up purely of access built-in functions. Fn_ConvStringToArray() acts merely as a wrapper function, for sake of convenience.
A.D.Tejpal
------------
' Code to be placed in VBA module
'================================
Function Fn_ConvStringToArray(StrInput _
As String) As Variant
Fn_ConvStringToArray = _
Split(Format(StrInput, _
Mid(Replace(String(Len(StrInput), _
"~"), "~", "~@"), 2)), "~") ' (A)
End Function
'================================
----- Original Message -----
From: A.D.Tejpal
To: Access Developers discussion and problem solving
Cc: A.D.Tejpal
Sent: Tuesday, March 25, 2008 11:01
Subject: Re: [AccessD] Treat string as array
Function Fn_ConvStringToArray(), as given below, returns an array, so that individual characters of input string get placed in individual elements of the array.
Note - The three line block of code involving For/Next loop could have been replaced by a single statement using String() function. However, String() function recognizes only one character as its last argument.
A.D.Tejpal
------------
' Code to be placed in VBA module
'=============================
Function Fn_ConvStringToArray(StrInput _
As String) As Variant
Dim Fmt As String, Cnt As Long
For Cnt = 1 To Len(StrInput)
Fmt = Fmt & "~@"
Next
' Strip leading ~
Fmt = Mid(Fmt, 2)
Fn_ConvStringToArray = _
Split(Format(StrInput, Fmt), "~")
End Function
'=============================
----- Original Message -----
From: jwcolby
To: 'Access Developers discussion and problem solving'
Sent: Monday, March 24, 2008 22:19
Subject: Re: [AccessD] Treat string as array
Michael,
Split() only works on delimited strings. It is designed to break a string
of words (for example) into an array of the words. In that case it would
use the spaces as the delimiter.
I am trying to take any string and put the INDIVIDUAL CHARACTERS OF THE
STRING into INDIVIDUAL ELEMENTS of an array. If I gave you a string of
"12345asdfg" and you pass that to split you would get (I assume)
"12345asdfg" back in one element of an array. I need 1 in the first
element, 2 in the next element, 3 in the next element etc.
Go back to the very beginning of this thread and look at what I asked for.
>> How can I turn a string into an array? I need to iterate through the
>> characters of a string.
>>
>> For each char in str
>> dosomething char
>> Next char
Arrays have iterators (for each next). Strings do not.
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 Michael Bahr
Sent: Monday, March 24, 2008 12:37 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Treat string as array
Ok, but the principles still apply. Try this
http://www.vbforums.com/showthread.php?t=470268
and for reference
http://www.codeguru.com/forum/archive/index.php/t-250108.html
http://www.thescripts.com/forum/thread13305.html
Mike...
> Thanks. VBA.
>
>
> 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 Michael
> Bahr
> Sent: Sunday, March 23, 2008 8:21 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Treat string as array
>
> JOhn, take a look here
> http://www.thescarms.com/dotnet/dotnetstring.aspx
>
> Mike...
>
>> How can I turn a string into an array? I need to iterate through the
>> characters of a string.
>>
>> For each char in str
>> dosomething char
>> Next char
>>
>> John W. Colby
>> Colby Consulting
>> www.ColbyConsulting.com