Dumb sort question - Tanks & Comments

jbv jbv.silences at club-internet.fr
Thu Dec 19 16:12:01 EST 2002


Ken,

Sorry for being so late on this topic, but last week has been
sort of hectic...

Anyway, thanks a lot for your suggestion.
I found the time to test it today : it works great but, like the other
script submitted by Jacqueline, it becomes rather slow when the
amount of data gets large...

Best regards,
JB

> jb,
>
> I'm sorry that I came in late on this, but here's a way to do it with a
> custom transposing function... it may not be fast enough, but adapt it to
> your data and give it a try and let us know your results:
>
> on mouseUp
>     -- A sample line number to extract
>     put 3 into theLineToGet
>     put 1 into theItemNumberToSortBy
>
>     -- Some sample data
>     put "b,d,c,a" & cr & "2,4,3,1" & cr & "B,D,C,A" & cr & "20,40,30,10"
> into tVar
>
>     -- Transpose the data
>     put transposeIt(tVar) into temp
>
>     -- Sort it
>     sort lines of temp by item theItemNumberToSortBy of each
>
>     -- extract "line" (column) of data, put it into a field
>     put line theLineToGet of transposeIt(temp) into fld 1
>   end if
> end mouseUp
>
> function transposeIt what
>   -- assumes comma-delimited items and cr-delimited lines
>   put "" into returnVal
>   put 1 into tItemCounter
>   repeat for each line tLine in what
>     put 1 into tLineCounter
>     if tItemCounter = 1 then
>       -- use replace for quick action on first "line" of data
>       replace "," with cr in tLine
>       put tLine into returnVal
>     else
>       repeat for each item i in tLine
>         put "," after line tLineCounter of returnVal
>         put i after line tLineCounter of returnVal
>         add 1 to tLineCounter
>       end repeat
>     end if
>     add 1 to tItemCounter
>   end repeat
>   return returnVal
> end transposeIt
>
> Hope this helps,
>
> Ken Ray
> Sons of Thunder Software
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/
>
> ----- Original Message -----
> From: "jbv" <jbv.silences at club-internet.fr>
> To: <metacard at lists.runrev.com>
> Sent: Sunday, December 08, 2002 9:36 AM
> Subject: Re: Dumb sort question - Tanks & Comments
>
> > Thank you all for your help & suggestions.
> > Unfortunately, none of them helped solving
> > my problem...
> > Below you'll find a few more info on what
> > I'm trying to do, comments on some suggestions
> > and finally some feature requests for future versions
> > of MC.
> >
> > Basically, I need to sort a variable featuring 5 lines
> > with a max of 30,000 items each. The sort key could
> > be any of the 5 lines, and after sorting I'd like to extract
> > any line of the variable (get line 3 of myVariable) for
> > further processing. The content of every item of every
> > line can change / evolve continuously.
> > When the variable is organized as 30,000 lines of 5 items
> > each, sorting is a snap (less than 1 second), but then
> > extracting 1 column is impossible...
> >
> >
> > ............................
> > Jacqueline :
> > Thanks for your script : it works great, but when the variable
> > reaches 20,000 items per line, it becomes way too slow...
> >
> > ............................
> > Ray :
> > Yes, the transpose function looks attracting, but unfortunately
> > it only works on arrays. And once the array has been transposed,
> > it seems impossible to extract 1 single line / row. I tried to put the
> > array
> > content into a variable, but it remains stractured as an array...
> > BTW, when the size of a 2 dimensions array reaches a certain limit
> > (5 rows & 20,000 column), I get the error message : "can't transpose
> > this array" (or something similar), while it works fine with 5 rows and
> > 10,000 colums... Is it a bug ?
> >
> > ............................
> > Mr X :
> > Yes, 1 of the Rinaldi externals does that perfectly, but doesn't run
> > on Windoze...
> >
> > ............................
> > Andu and Tariel :
> > Yes, being able to access arrays content via individual rows & columns
> > would be a GREAT feature...
> > I'd even dare to say that future versions of MC should implement most
> > of the properties & functions associated with spreadsheets in OMO, but
> > applied to arrays, which means :
> > - the ability to split arrays vertically & horizontally
> > - the ability to extract individual rows / colums
> > - the ability to sort the content of an array according to sort keys
> > that
> > could be individual rows / colums
> > - a special find function that would work like in OMO spreadsheets :
> >     find rows of myTab where item 2 > 10
> >     would return a comma-separated list of numbers of rows for which
> > this condition is true
> >
> > Actually, spreadsheets in OMO where 1 of the greatest tools I've ever
> > used and I still miss them several years later...
> > Of course, this would work on 1 or 2 dimension arrays; for 3 dimension
> > arrays, things get more complex...
> >
> > Cheers,
> > JB
> >
> >
> >
> > _______________________________________________
> > metacard mailing list
> > metacard at lists.runrev.com
> > http://lists.runrev.com/mailman/listinfo/metacard
> >
>
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard







More information about the metacard mailing list