Forum Discussion

pcnweb's avatar
pcnweb
Channel Surfer
9 years ago

Concatenation Issue

I have arrays holding my row info like so:

m.options
m.options1
m.options2
etc...

I want to pass them from roGridScreenEvent to my function by appending the msg.GetIndex() to m.options, ex:

myopt = m.options+msg.GetIndex()

but that fails - do you have to cast everything to strings, then to something else? Can't figure it out or find examples in the docs.
  • RokuKC's avatar
    RokuKC
    Roku Employee
    "pcnweb" wrote:
    I have arrays holding my row info like so:

    m.options
    m.options1
    m.options2
    etc...

    I want to pass them from roGridScreenEvent to my function by appending the msg.GetIndex() to m.options, ex:

    myopt = m.options+msg.GetIndex()

    but that fails - do you have to cast everything to strings, then to something else? Can't figure it out or find examples in the docs.


    If m.options is an array of integers, apparently from your example, then you would append a new one to it by doing m.options.Push( msg.GetIndex() ).
    https://sdkdocs.roku.com/display/sdkdoc/ifArray
  • pcnweb's avatar
    pcnweb
    Channel Surfer
    Thanks for the reply, guess I wasn't clear - I want to concatenate a number to the end of the actual array name, ex:

    m.options + 1 would become m.options1
  • Seems like it would be easier to make m.options be an array, so you could say m.options[2] rather than m.option2. But if you really want to do this, then yes, you must do string manipulations, like

    name = "options" + index.ToStr()
    value = m[name]


    --Mark
  • RokuKC's avatar
    RokuKC
    Roku Employee
    "pcnweb" wrote:
    Thanks for the reply, guess I wasn't clear - I want to concatenate a number to the end of the actual array name, ex:

    m.options + 1 would become m.options1


    Ah, I see. Sorry, I hadn't understood the use case. Mark's suggestion to use an actual array rather than dynamic field names is a good one. 🙂