[AccessD] A2003:Replacing 'tokens' in a string

Drew Wutka DWUTKA at Marlow.com
Thu Jan 28 11:14:02 CST 2010


That's a good question Max, so here is a serious answer.

First, class/collection code is more readily understandable by it's very
nature.  

For example, let's take this thread's situation.  If you were to look at
a single line of code:

Arr(i) 

Or 

Tk.TokenValue

Which gives you an immediate understanding of what you are looking at?
The first is simply some element of an array.  We could name the array
something more descriptive, but it's still just an element, and the name
would only represent the group, not the element.  The second is an
object, with a property, so we know we are getting a Token Value.  This
may not seem like a big deal, but trust me, when you have to go through
code by someone else, or even older code of your own, you will
appreciate the difference.  My first few web based projects (which used
ActiveX .dll's I created), used Arrays to store data.  Once I got the
hang of classes and collections, that is all I used.  When I have to go
back to one of those first few projects, I spend 10 times longer trying
to figure out what I was doing then when I look at a class/collection
system.

Second, Collection keys..... one of the weeknesses of an array is that
it's elements are all numerically based.  So in this thread's example,
you have to manually search through an array for an element.  In the
example I posted, the end result is a collection keyed off of the token
name, so any single element can be retrieved by a recognizable, and
known value.  

Third, compartmentalized processes.  Believe you me, I have written some
pretty monstrous functions in my time.  Pages of code, all in one
function.  Could they have been split up, sometimes, yes.  Classes, by
their very nature are easier to compartmentalize the internal processes.
I'd say the best explanation would be to compare a standard module to a
piece of paper, and a class module to a lump of clay.  You can do
anything with that clay that you can do with the piece of paper, but the
paper is 2D, while the clay is 3D.  You can fold and twist that paper to
give you the illusion of a 3D object, but it isn't going to really have
the mass to pull it off.  

Drew

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo
Sent: Wednesday, January 27, 2010 11:54 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] A2003:Replacing 'tokens' in a string

Yes John/Drew but why use that horrendous code when you can do the same
with
this..

Call
xsplit("[AccountNo]=1234,[InvoiceNo]=1234567,[InvoiceDate]=04/01/2010,[N
ame]
=Barry")

Function xSplit(str as string)
    Dim arr() As String, i As Integer
    arr = Split(str, ",")
    Debug.Print arr(0), arr(1), arr(2), arr(3) 'Done!
	'if you want the values then this next bit will do that
    For i = 0 To 3
        arr(i) = Mid(arr(i), InStr(arr(i), "=") + 1)
        Debug.Print arr(i),
    Next i
End Function

A person cannot go through life taking the more obtuse form of coding
just
so that they may "learn" something new.
It is all about getting the code out.
I am with Stuart on  this.

Max
The information contained in this transmission is intended only for the person or entity 
to which it is addressed and may contain II-VI Proprietary and/or II-VI Business 
Sensitive material. If you are not the intended recipient, please contact the sender 
immediately and destroy the material in its entirety, whether electronic or hard copy. 
You are notified that any review, retransmission, copying, disclosure, dissemination, 
or other use of, or taking of any action in reliance upon this information by persons 
or entities other than the intended recipient is prohibited.





More information about the AccessD mailing list