All this discussion of arrays inspired me to create a general-purpose function that 'splits' table data into an array. It will handle data that has any number of 'lookup key' items before the final 'lookup data' item in each row.

Some sample data:
1,1,1,data111
1,1,2,data112
1,1,3,data113
1,2,1,data121
1,2,2,data122
1,3,1,data131
1,3,2,data132
1,3,3,data133
1,3,4,data134
2,1,1,data211
2,1,2,data212
2,2,1,data221
2,2,2,data222
2,2,3,data223
2,2,4,data224
2,2,5,data225


The code (watch for line wraps):

on mouseUp
   put table_Split(fld 2,,comma) into tArray
   -- then do things with array data
end mouseUp


function table_Split pTable, pLineDel, pItemDel
   #-------------------------------
   #   pTable = REQUIRED rows of column data, where
   #   .    all rows have the same number of columns
   #   .    cols 1 to -2 of each row are the lookup keys for the value
   #   .    col -1 of each row is the value to be looked up
   #   pLineDel = OPTIONAL non-CR line delimiter used in pTable
   #   pItemDel = OPTIONAL non-tab item delimiter used in pTable
   #-------------------------------

   local vArray -- make sure variable exists for 'do' command

   -- prep
   if pLineDel = empty then put CR into pLineDel
   if pItemDel = empty then put tab into pItemDel
   set the itemDel to pItemDel
   set the lineDel to pLineDel
   filter pTable without empty -- remove blank lines from data

   repeat for each line tLine in pTable
      -- prep key
put "vArray[" & quote & item 1 to -2 of tLine & quote & "]" into tArrayElementName
      replace pItemDel with (quote & "][" & quote) in tArrayElementName
      -- store data item in array element
      do ("put last item of tLine into" && tArrayElementName)
   end repeat

   put vArray into tArray
   delete variable vArray -- so it will be empty next time through
   return tArray
end table_Split


You can set a breakpoint at the "return tArray" line to see the array in the script editor's variable viewer.

The things some people do for fun...  ;-)
--
Phil Davis

PDS Labs
Professional Software Development
http://pdslabs.net

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to