Simple Arrays

Phil Davis revdev at pdslabs.net
Mon Jan 11 15:24:45 EST 2010


Thanks Dick - I hadn't thought about handling common cases differently. 
Good idea!

Phil


On 1/11/10 12:10 PM, Dick Kriesel wrote:
> On 1/10/10 1:25 PM, "Phil Davis"<revdev at pdslabs.net>  wrote:
>
>    
>> The things some people do for fun...  ;-)
>>      
> ... can make others want to get in on the fun, like by fixing something that
> ain't broke.  Here's an elaboration on your idea that handles your sample
> data more than twice as fast, primarily by avoiding the "do" for typical
> cases.
>
> Thanks for the cue, Phil.
>
> -- Dick
>
>
> <postscript_with_line_wraps>
>
> function table_split tTable,pLineDel,pItemDel
>     filter tTable without empty
>     set the lineDelimiter to coalesce(pLineDel,cr)
>     set the itemDelimiter to coalesce(pItemDel,tab)
>     switch number of items in line 1 of tTable - 1 -- number of dimensions
>        case 1
>           repeat for each line tLine in tTable
>              put item 2 of tLine into tArray[item 1 of tLine]
>           end repeat
>           break
>        case 2
>           repeat for each line tLine in tTable
>              put item 3 of tLine into tArray[item 1 of tLine][item 2 of
> tLine]
>           end repeat
>           break
>        case 3
>           repeat for each line tLine in tTable
>              put item 4 of tLine into tArray[item 1 of tLine][item 2 of
> tLine][item 3 of tLine]
>           end repeat
>           break
>        default
>           repeat for each line tLine in tTable
>              do "put last item of tLine into tArray["&  replaceText(item 1 to
> -2 of tLine,the itemDelimiter,"][")&  "]"
>           end repeat
>     end switch
>     return tArray
> end table_split
>
> function coalesce -- return the first non-empty parameter
>     repeat with i = 1 to the paramCount
>        if param(i) is not empty then
>           return param(i)
>        end if
>     end repeat
> end coalesce
>
> </postscript_with_line_wraps>
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>    

-- 
Phil Davis

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




More information about the use-livecode mailing list