Dumb sort question - Tanks & Comments
Ken Ray
kray at sonsothunder.com
Thu Dec 19 17:10:08 EST 2002
Thanks for checking...
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: Thursday, December 19, 2002 2:57 PM
Subject: Re: Dumb sort question - Tanks & Comments
>
>
> 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
>
>
>
>
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard
>
More information about the metacard
mailing list