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.

“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

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

Thanks, both ideas are helpful!

“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. :slightly_smiling_face: