[AccessD] Treat string as array

jwcolby jwcolby at colbyconsulting.com
Sun Mar 23 22:01:17 CDT 2008


The "wide spacing" was simply meant to represent characters in an array, not
actual spaces between characters in a string. 

I want to change a string into an array of characters, that is all.  In fact
I had to get on with life and just did the Mid() thing, ugly as it is.  It
is all working just fine, I just prefer easy to use, easy to read code, and
that whole mid() thing is just plain ugly and hard to read.  For next
iterators are easy to read and see the intention.

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 Gustav Brock
Sent: Sunday, March 23, 2008 5:18 AM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Treat string as array

Hi John

As for the wide spacing you could do:

Public Function aTest(strA As String) As String

  Dim abytTest()  As Byte
  Dim intChar     As Integer
  Dim strOut      As String
  
  abytTest = strA
  
  For intChar = LBound(abytTest) To UBound(abytTest)
    If abytTest(intChar) = 0 Then
      strOut = strOut & Space(1)
    Else
      strOut = strOut & Chr(abytTest(intChar))
    End If
  Next
  
  aTest = RTrim(strOut)
   
End Function

But it isn't much simpler than using Mid:

Public Function StringWide(strPrint As String) As String

  Dim strWide As String
  Dim intLen  As Integer
  Dim intPos  As Integer
  
  intLen = Len(strPrint)
  If intLen > 0 Then
    strWide = Space(intLen * 2 - 1)
  End If
  
  For intPos = 1 To intLen
    Mid(strWide, intPos * 2 - 1) = Mid(strPrint, intPos, 1)
  Next
  
  StringWide = strWide
  
End Function

/gustav




More information about the AccessD mailing list