ASP Classes: How do I iterate through a property that's an array?

Discussion in 'ASP General' started by Guest, Apr 18, 2005.

  1. Guest

    Guest Guest

    I'm going a little crazy trying to learn how to use arrays as properties in
    VBScript classes. Hopefully someone can help. First, I can't figure out
    whether it's possible to iterate through the members of an array that I have
    assigned to a propety. Second, I'm finding the question of "Property Let"
    versus "Property Set" to be very confusing.

    I have this code that utilizes a custom class I've defined, called clsGroup:

    myString = ", ,
    "

    Dim objGroup
    Set objGroup = New clsGroup
    objGroup.EmailsAsArray = ParseCommaDelimitedStringToArray(myString)

    If I test the resulting array, as follows:
    Response.Write(IsArray(objGroup.EmailsAsArray))
    ....it resolves to "True". So objGroup.EmailsAsArray is successfully assigned
    an array, which is what I want.

    Confusing things:

    1) If I try a simple loop, as follows...

    dim myThingy
    For each myThingy in objGroup.EmailsAsArray
    response.write myThingy & "<br>"
    Next

    ....this doesn't work. It complains that I'm not dealing with a collection.
    This makes some sense, because I have a collection wrapped up in an object.
    What's the right practice and/or syntax in this case?

    2) The second thing that has me confused is whether an array is an object or
    not. I'm thinking it is not. I wasted a lot of time trying to use the
    "Property Set" declaration in trying to assign the array to my
    ..EmailsAsArray property. In the end, the only thing that would not return an
    error was the more typical "Get/Let" pair:

    Public Property Get EmailsAsArray()
    EmailsAsArray = m_objEmailsAsArray
    End Property
    Public Property Let EmailsAsArray(objEmailsAsArray)
    m_objEmailsAsArray = objEmailsAsArray
    End Property

    The amount of literature devoted to Class development in classic ASP is
    unimpressive. Maybe time to move on up to ASP.NET.

    Any help out there?

    -KF
    Guest, Apr 18, 2005
    #1
    1. Advertising

  2. wrote:
    > I'm going a little crazy trying to learn how to use arrays as
    > properties in VBScript classes. Hopefully someone can help. First, I
    > can't figure out whether it's possible to iterate through the members
    > of an array that I have assigned to a propety. Second, I'm finding
    > the question of "Property Let" versus "Property Set" to be very
    > confusing.
    >
    > I have this code that utilizes a custom class I've defined, called
    > clsGroup:
    >
    > myString = ", ,
    > "
    >
    > Dim objGroup
    > Set objGroup = New clsGroup
    > objGroup.EmailsAsArray = ParseCommaDelimitedStringToArray(myString)


    What is this "Parse..." thingy? Did you reinvent the builtin split() method?

    >
    > If I test the resulting array, as follows:
    > Response.Write(IsArray(objGroup.EmailsAsArray))
    > ...it resolves to "True". So objGroup.EmailsAsArray is successfully
    > assigned an array, which is what I want.
    >
    > Confusing things:
    >
    > 1) If I try a simple loop, as follows...
    >
    > dim myThingy
    > For each myThingy in objGroup.EmailsAsArray
    > response.write myThingy & "<br>"
    > Next
    >
    > ...this doesn't work. It complains that I'm not dealing with a
    > collection. This makes some sense, because I have a collection
    > wrapped up in an object. What's the right practice and/or syntax in
    > this case?


    Hmm, according to the docs, a "for each" loop should work with an array. In
    fact, this works fine:

    dim ar, i
    ar=array(14,2,3)
    for each i in ar
    response.write i & "<BR>"
    next


    Have you tried a simple "for i = 0 to ubound(...)" loop?


    >
    > 2) The second thing that has me confused is whether an array is an
    > object or not. I'm thinking it is not.


    Correct. You never use Set with arrays in vbscript.

    You can download the vbscript documentation from:
    http://tinyurl.com/7rk6

    Bob Barrows
    PS. This isn't really an asp question: it's more of a vbscript question. The
    vbscript gurus hang out at m.p.scripting.vbscript.

    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"
    Bob Barrows [MVP], Apr 18, 2005
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Gogo
    Replies:
    1
    Views:
    2,096
    Sudsy
    Sep 4, 2003
  2. runescience
    Replies:
    0
    Views:
    1,453
    runescience
    Feb 9, 2006
  3. John
    Replies:
    4
    Views:
    908
    RedGrittyBrick
    Apr 1, 2008
  4. Skye Weir-mathewes
    Replies:
    3
    Views:
    127
    Stefano Crocco
    Apr 17, 2007
  5. Zephyr Pellerin

    Iterate through Array?

    Zephyr Pellerin, Nov 22, 2007, in forum: Ruby
    Replies:
    4
    Views:
    162
    Lloyd Linklater
    Nov 23, 2007
Loading...

Share This Page