Arrays for lists with multiple lines where item 1 is the same on N number of lines
Alex Tweedly
alex at tweedly.net
Fri Apr 22 03:59:39 EDT 2016
You don't even need to test for empty; you can use 'put ... after
tArray[key]' whether it is currently empty or not.
so you could simply do
set the itemDel to tab
repeat for each line tRecord in tManyRecords
put item 1 of tRecord into tParent
put item 2 of tRecord into tChild
put tChild & comma after aArray[tParent]
end repeat
put aArray[138] into msg -- 43,131,6, should appear in the msg box
NB - you do get the trailing comma, so you need to handle that properly
in any subsequent processing
e.g. repeat for each item T in aArray[138] ... is fine.
-- Alex.
On 22/04/2016 08:39, Kay C Lan wrote:
> This might get you started with your first problem of how to avoid
> overwriting data.
>
> Assuming your second long list is tab separated and been read into a
> variable tManyRecords
>
> set the itemDel to tab
> repeat for each line tRecord in tManyRecords
> put item 1 of tRecord into tParent
> put item 2 of tRecord into tChild
> if (aArray[tParent] = empty) then
> put tChild into aArray[tParent]
> else
> --add another child
> put aArray[tParent] & comma & tChild into aArray[tParent]
> end if
> end repeat
> put aArray[138] into msg -- 43,131,6 should appear in the msg box
>
> --be careful about choosing a list delimiter
> --comma is a BAD choice unless you KNOW it's ALWAYS going to be a number
> --but even then someone's going to come along with 5,678 and use a comma as
> a thousand separator
>
> It's really just a matter of testing whether the Array Key is empty or not.
>
> HTH
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list