I'll take another swing at the horse. My objection to this handler/function at this point is that it's replacing (at most) six lines of code:
put the itemDel into savedDelimiter set the itemDel to someDelimiter combine someArray with someDelimiter sort items of someArray <sort params here> split someArray with someDelimiter set the itemDel to savedDelimiter with a call to a handler that doesn't (yet) support escaping the delimiter or all the parameters sort supports. Supporting "by word 4 of each" for example would drive you batty trying to support it. On Sat, Dec 12, 2015 at 10:21 AM, Peter M. Brigham <pmb...@gmail.com> wrote: > At this point probably beating a dead horse, but here's a cleaned up > handler that handles cr's in the data. Geoff is right that the basic idea > can be done in 3 lines, but this automates choosing an alternate delimiter > and specifying the sort mode in a one-line call. > > The original handler came from one of the LC lessons, and was used to > prepare an array for a function to search the contents of an array that > scales logarithmically rather than linearly. > > -- Peter > > Peter M. Brigham > pmb...@gmail.com > http://home.comcast.net/~pmbrig > > ------- > > on sortArray @pArray, pSortMode, pDelim > -- sort the values of an array, returning an integer-keyed array > -- whose values increase as the keys increase > -- pArray is referenced, so the original array will be changed > -- note that the original keys of the array will be discarded, > -- thus most useful for transforming numerically-keyed arrays > -- pSortMode = {"text"|"textCaseSens"|"numeric"|"dateTime"} > -- textCaseSens sets caseSensitive to true before sorting by text > -- if sortMode = empty, defaults to numeric > -- specify a delimiter pDelim if the elements of the array contain cr's > -- you can use this to prepare an array for the logarithmicSearch() > function > -- not sure who wrote the original, > -- cleaned up and expanded by Peter M. Brigham, pmb...@gmail.com, > -- with help from the use-LC list > > if pSortMode = empty then put "numeric" into pSortMode > if pDelim = empty then put cr into pDelim > combine pArray with pDelim > -- now pArray is a pDelim-delimited list of values > -- sort the list as directed > set the linedel to pDelim > switch pSortMode > case "textCaseSens" > set the casesensitive to true > case "text" > sort lines of pArray > break > case "numeric" > sort lines of pArray numeric > break > case "dateTime" > sort lines of pArray dateTime > break > end switch > # transform the sorted list back to a numerically indexed array > split pArray with pDelim > end sortArray > > > On Dec 11, 2015, at 7:34 PM, Geoff Canyon wrote: > > > On Fri, Dec 11, 2015 at 6:51 PM, Alex Tweedly <a...@tweedly.org> wrote: > > > >> > >> I haven't read everything in this thread, so I don't know if Peter's > >> function handled this or not ... > >> > >> On 11/12/2015 23:32, Geoff Canyon wrote: > >> > >>> On Thu, Dec 10, 2015 at 12:47 PM, Peter Brigham <pmb...@gmail.com> > wrote: > >>> > >>>> > >>>> But back to the first point, this function can be eliminated in three > >>> lines > >>> of code: > >>> > >>> combine someArray using cr > >>> sort lines of someArray -- however you like > >>> split someArray by cr > >>> > >>> Ummm ... > >> put "abc" & CR & "def" into somearray[1] > >> put "ghj" into somearray[2] > >> and then try the above 3-line code snippet. > >> > >> -- Alex. > > > > > > From the function: > > > > repeat for each line k in keyList > > put pArray[k] & cr after valueList > > > > It doesn't. > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode@lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode