After Parenthesis in ASP Variables - Query

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • ll

    After Parenthesis in ASP Variables - Query

    Hi,
    I'm wondering about variable declaration in ASP - is there a good
    resource for this? In naming variables, is there a way to include
    characters in a variable name after the parenthesis/variable in a
    loop? I have quite a few variables (e.g. strOut1_a, strOut2_a, etc)
    and thought a loop would be the best way to do this, but I am getting
    errors for the characters after the parenthesis. My code is below.
    Thanks for any help or resources.
    Louis

    -----------------------------------------
    for a=1 to 3
    strOut(a)_a=obj Comm("Out"&a&"_ a")
    response.write( "Out"&a&"_a ")
    next
  • Drew

    #2
    Re: After Parenthesis in ASP Variables - Query

    Use an array,

    dim a, arrStrOut(2) 'Remember arrays are zero based
    for a = 0 to UBound(arrStrOu t)
    arrStrOut(a) = a
    response.write( arrStrOut(a))
    next

    Drew

    "ll" <barn104_1999@y ahoo.comwrote in message
    news:61aae1ea-6798-46fd-8deb-e03e28959561@p2 5g2000hsf.googl egroups.com...
    Hi,
    I'm wondering about variable declaration in ASP - is there a good
    resource for this? In naming variables, is there a way to include
    characters in a variable name after the parenthesis/variable in a
    loop? I have quite a few variables (e.g. strOut1_a, strOut2_a, etc)
    and thought a loop would be the best way to do this, but I am getting
    errors for the characters after the parenthesis. My code is below.
    Thanks for any help or resources.
    Louis
    >
    -----------------------------------------
    for a=1 to 3
    strOut(a)_a=obj Comm("Out"&a&"_ a")
    response.write( "Out"&a&"_a ")
    next

    Comment

    • Bob Barrows [MVP]

      #3
      Re: After Parenthesis in ASP Variables - Query

      ll wrote:
      Hi,
      I'm wondering about variable declaration in ASP - is there a good
      resource for this?
      I can see why you had trouble finding one, given that you were treating
      ASP as a language rather than what it really is: a "platform" which
      supports several scripting languages, including vbscript. I'm sure if
      you knew you had to find a vbscript reference you would have found this

      or this:

      In naming variables, is there a way to include
      characters in a variable name after the parenthesis/variable in a
      loop?
      After the parentheses? No. I'm not sure there is a language where this
      is allowed. Certainly not VB, VBA or vbscript. With vbscript, the
      parentheses contain, when declaring the array, the maximum index value
      to be stored in the array, and when referring to an item within the
      array, the index of the item.

      Have a look in the documentation about declaring and using arrays in
      vbscript.


      --
      Microsoft MVP -- ASP/ASP.NET
      Please reply to the newsgroup. The email account listed in my From
      header is my spam trap, so I don't check it very often. You will get a
      quicker response by posting to the newsgroup.


      Comment

      • Dave Anderson

        #4
        Re: After Parenthesis in ASP Variables - Query

        ll wrote:
        I'm wondering about variable declaration in ASP - is there a good
        resource for this? In naming variables, is there a way to include
        characters in a variable name after the parenthesis/variable in a
        loop? I have quite a few variables (e.g. strOut1_a, strOut2_a, etc)
        and thought a loop would be the best way to do this, but I am getting
        errors for the characters after the parenthesis. My code is below.
        Thanks for any help or resources.
        Louis
        >
        -----------------------------------------
        for a=1 to 3
        strOut(a)_a=obj Comm("Out"&a&"_ a")
        response.write( "Out"&a&"_a ")
        next
        VBScript allows all kinds of funny variable names, provided you use
        brackets. This is a valid expression:

        [strOut(a)_a] = objComm("Out"&a &"_a")

        It is not what you want, however, since it is merely a static variable name.


        OTOH, you can probably get a little of what you want with JScript:

        for (var ary=[],i=0; i<3; i++) {
        ary.push({_a:ob jComm("Out"&a&" _a")}
        Response.Write( ary[i]._a)
        }



        --
        Dave Anderson

        Unsolicited commercial email will be read at a cost of $500 per message. Use
        of this email address implies consent to these terms.


        Comment

        • =?Utf-8?B?T2xkIFBlZGFudA==?=

          #5
          I wonder if this is what you are after...

          First of all, there's no reason you couldn't put the suffix *BEFORE* the
          parentheses:
          -----------------------------------------
          for a=1 to 3
          strOut_a(a) = objComm("Out"&a &"_a")
          next

          But if you mean that you want *properties* on a SINGLE indexed variable of
          an array...sure, you can do that. Using a VBScript class.

          Silly (and not overly well formed) example, just to get the point across:

          <%
          Class Person
          Private mName, mEmail

          Public Sub Init( name, email )
          me.mName = name
          ne.mEmail = email
          End Sub

          Public Property Get Name( )
          Name = me.mName
          End Property
          Public Property Get EMail( )
          EMail = me.mEmail
          End Property
          End Class

          Dim people( 10 )

          Set people(3) = New Person
          people(3).Init( "Adam", "adam@abc.c om")
          Set people(7) = New Person
          people(7).Init( "Joe","joe@xyz. com")

          ....
          x = 7

          Response.Write people(x).Name & " has email address " & people(x).Email
          ....
          %>

          Is *THAT* what you are after?

          Comment

          • Bob Barrows [MVP]

            #6
            Re: I wonder if this is what you are after...

            Old Pedant wrote:
            First of all, there's no reason you couldn't put the suffix *BEFORE*
            the parentheses:
            -----------------------------------------
            for a=1 to 3
            strOut_a(a) = objComm("Out"&a &"_a")
            next
            >
            But if you mean that you want *properties* on a SINGLE indexed
            variable of an array...sure, you can do that. Using a VBScript class.
            >
            Silly (and not overly well formed) example, just to get the point
            across:
            >
            Now that was more helpful than my reply was. Thanks a lot for stepping in.

            --
            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"


            Comment

            • ll

              #7
              Re: I wonder if this is what you are after...

              On May 28, 5:55 am, "Bob Barrows [MVP]" <reb01...@NOyah oo.SPAMcom>
              wrote:
              Old Pedant wrote:
              First of all, there's no reason you couldn't put the suffix *BEFORE*
              the parentheses:
              -----------------------------------------
              for a=1 to 3
              strOut_a(a) = objComm("Out"&a &"_a")
              next
              >
              But if you mean that you want *properties* on a SINGLE indexed
              variable of an array...sure, you can do that. Using a VBScript class.
              >
              Silly (and not overly well formed) example, just to get the point
              across:
              >
              Now that was more helpful than my reply was. Thanks a lot for stepping in.
              >
              --
              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"


              Thanks for all your help - this has helped immensely!

              Comment

              • ll

                #8
                Re: I wonder if this is what you are after...

                On May 29, 11:05 am, ll <barn104_1...@y ahoo.comwrote:
                On May 28, 5:55 am, "Bob Barrows [MVP]" <reb01...@NOyah oo.SPAMcom>
                wrote:
                >
                >
                >
                Old Pedant wrote:
                First of all, there's no reason you couldn't put the suffix *BEFORE*
                the parentheses:
                -----------------------------------------
                for a=1 to 3
                strOut_a(a) = objComm("Out"&a &"_a")
                next
                >
                But if you mean that you want *properties* on a SINGLE indexed
                variable of an array...sure, you can do that. Using a VBScript class.
                >
                Silly (and not overly well formed) example, just to get the point
                across:
                >
                Now that was more helpful than my reply was. Thanks a lot for stepping in.
                >
                --
                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"
                >
                Thanks for all your help - this has helped immensely!

                One more (hopefully quick) question... within the loops as shown in
                my code, does each variable created (e.g. strOutP1, strOutP2, etc)
                retain its value, or is an array needed for this?
                Thanks again,
                Louis

                Comment

                • =?Utf-8?B?T2xkIFBlZGFudA==?=

                  #9
                  Mystery to me

                  One more (hopefully quick) question... within the loops as shown in
                  my code, does each variable created (e.g. strOutP1, strOutP2, etc)
                  retain its value, or is an array needed for this?
                  Ummm...."loops" ??? You only show ONE loop there.

                  And you don't show *ANY* variables name strOutP1 or strOutP2 or anything
                  similar to that.

                  What in the heck are you talking about??? Maybe code you didn't show us?


                  Comment

                  • ll

                    #10
                    Re: Mystery to me

                    On Jun 1, 12:40 am, Old Pedant <OldPed...@disc ussions.microso ft.com>
                    wrote:
                    One more (hopefully quick) question... within the loops as shown in
                    my code, does each variable created (e.g. strOutP1, strOutP2, etc)
                    retain its value, or is an array needed for this?
                    >
                    Ummm...."loops" ??? You only show ONE loop there.
                    >
                    And you don't show *ANY* variables name strOutP1 or strOutP2 or anything
                    similar to that.
                    >
                    What in the heck are you talking about??? Maybe code you didn't show us?


                    Sorry for the confusion - allow me to just start from the beginning,
                    which might be easier. I have a set of variables
                    (strOut1_a....t o...strOut15_a) .
                    I'm looking for a way to loop through these variable names to
                    establish their values, such as:

                    strOut1_a = objComm("Out1_a ")

                    but with a loop, rather than writing out each.
                    Many thanks again,
                    Louis

                    Comment

                    • Anthony Jones

                      #11
                      Re: Mystery to me

                      "ll" <barn104_1999@y ahoo.comwrote in message
                      news:c68d58b2-58c7-4f03-b556-b1d3a5e3744a@k3 0g2000hse.googl egroups.com...
                      On Jun 1, 12:40 am, Old Pedant <OldPed...@disc ussions.microso ft.com>
                      wrote:
                      One more (hopefully quick) question... within the loops as shown in
                      my code, does each variable created (e.g. strOutP1, strOutP2, etc)
                      retain its value, or is an array needed for this?
                      Ummm...."loops" ??? You only show ONE loop there.

                      And you don't show *ANY* variables name strOutP1 or strOutP2 or anything
                      similar to that.

                      What in the heck are you talking about??? Maybe code you didn't show
                      us?
                      >
                      >
                      >
                      Sorry for the confusion - allow me to just start from the beginning,
                      which might be easier. I have a set of variables
                      (strOut1_a....t o...strOut15_a) .
                      I'm looking for a way to loop through these variable names to
                      establish their values, such as:
                      >
                      strOut1_a = objComm("Out1_a ")
                      >
                      but with a loop, rather than writing out each.

                      That can't be done, you need an array. I know thats already been said but
                      things in this thread seemed to have got over complicated for some reason.

                      Dim strOut_a(4)

                      ' Stuff to assign values to the array elements


                      For i = 0 To UBound(strOut_a )
                      Response.Write strOut_a(i) & "<br />"
                      Next




                      --
                      Anthony Jones - MVP ASP/ASP.NET


                      Comment

                      • =?Utf-8?B?T2xkIFBlZGFudA==?=

                        #12
                        Re: Mystery to me

                        Sorry for the confusion - allow me to just start from the beginning,
                        which might be easier. I have a set of variables
                        (strOut1_a....t o...strOut15_a) .
                        I'm looking for a way to loop through these variable names to
                        establish their values, such as:
                        >
                        strOut1_a = objComm("Out1_a ")
                        >
                        No, you do *NOT* want to do that. As a couple of people pointed out.

                        You WANT TO USE AN ARRAY.

                        Dim strOut_a(15)
                        For i = 1 To 15
                        strOut_a(i) = objComm("Out" & i & "_a")
                        Next

                        And then, where your *OTHER* code *WAS* using
                        strOut7_a
                        or whatever, you simply use
                        strOut_a(7)

                        What is wrong with that solution??

                        Now, there *IS* a way to do what you claimed to want. But it is slow slow
                        slow and clumsy and is not good programming practice and...well, the list
                        goes on. But if we truly can't convince you to use an array--perhaps because
                        some other component is expecting the indivdual names? if so, would you
                        really want to use that component?--then:

                        For i = 1 To 15
                        Execute "strOut" & i & "_a = objComm(""Out" & i & "_a"")"
                        Next

                        Untested, but I think that's right.

                        Ugly and slow code, though. Try hard to avoid it.


                        Comment

                        • =?Utf-8?B?T2xkIFBlZGFudA==?=

                          #13
                          Actually, of course, it can be done...

                          As I noted:

                          <%
                          For i = 1 To 15
                          Execute "strOut" & i & "_a = objComm(""Out" & i & "_a"")"
                          Next
                          %>

                          Or use ExecuteGlobal, of course.

                          As I said, a crappy idea, but it does work.


                          Comment

                          Working...