Combine mystery
Ben Rubinstein
benr_mc at cogapp.com
Thu Feb 12 12:11:52 EST 2026
It's rather late in my LiveCode (Revolution) career to be asking this
question, but here we are.
I happened to be looking at the Dictionary entry for 'combine', and was
excited to find two variants of the command that I didn't now about. The
dictionary lists three forms:
> COMBINE arrayName {USING | BY | WITH} primaryDelimiter [AND secondaryDelimiter]
> COMBINE arrayName {USING | BY | WITH} primaryDelimiter as SET
> COMBINE arrayName {USING | BY | WITH} {row | column}
(I've capitalised the words which appear in a colour in the dictionary
presumably as keywords.)
Well I knew the first form; I hadn't come across the other two (in fairness to
me, the last form is apparently relatively new, the dictionary entry says that
it was added in 2.8.1.)
> If you use the as set form the combine command rebuilds the list using the delimiter passed; the values of the array are ignored.
I guess this is equivalent to "the keys" of the array, albeit with the ability
to specify a delimiter other than return. I'd not come across
It's the third form, mysteriously described as the second form, that I find
interesting:
> If the second form of the combine command is used, the elements of the original array are considered to be either columns or rows, separated by the columnDelimiter or rowDelimiter property respectively.
>
> Combining an array by row converts the array into a table with rows separated by the rowDelimiter. Each row in the resulting string is the contents of the corresponding key in the array.
>
> Combining an array by column converts the array into a table with columns separated by the columnDelimiter . Each column of the resulting string is the contents of the corresponding key in the array.
But I can't see how to access it. "row" and "column" aren't keywords. If I
use the syntax specified, quoting row or column, e.g.
combine aTest using "column"
it simply treats this as the first form, with "column" as the primaryDelimiter
(and why not). I tried guessing some alternatives
combine aTest using return by "column"
combine aTest by "column" using return
In both cases, no objection was raised to the statement, but the first item
(return or "column") was again treated as the primaryDelimiter, the second
part ignored.
Does anyone know what this syntax should be? Does it exist?
TIA,
Ben
More information about the use-livecode
mailing list