Hi Mark, Using your solution on 2000 entries, TW shows good performance while using my solution TW freezes. So I like to use it, but there is a small issue
1. the data tiddler itself is populated from tiddlers in Tiddlywiki, so I may have entries like below index= My Tiddler: New Tid value= -12 Tiddlywiki uses JSON instead of data tiddler to address above issue So what do you think Best wishes Mohammad On Thu, Feb 18, 2021 at 11:45 PM 'Mark S.' via TiddlyWiki < [email protected]> wrote: > Remember that in TW, the data dictionary is just a convenience tool. So > it's ok to cheat. Or at least that's my theory. > > <$vars cr=""" > """ > sortby="[split[:]nth[2]]" > > > <$list filter="[[MyData]get[text]split<cr>sortsub:number<sortby>]" > > > </$list> > </$vars> > > Gives > > lola: -7 <https://tiddlywiki.com/#lola%3A%20-7> > fifa: -2 <https://tiddlywiki.com/#fifa%3A%20-2> > nella: -1 <https://tiddlywiki.com/#nella%3A%20-1> > villa: 0 <https://tiddlywiki.com/#villa%3A%200> > rita: 1 <https://tiddlywiki.com/#rita%3A%201> > afra: 1 <https://tiddlywiki.com/#afra%3A%201> > cobra: 2 <https://tiddlywiki.com/#cobra%3A%202> > sina: 3 <https://tiddlywiki.com/#sina%3A%203> > zila: 3 <https://tiddlywiki.com/#zila%3A%203> > > > > On Thursday, February 18, 2021 at 11:30:23 AM UTC-8 Mohammad wrote: > >> when using nsort on new values (e.g. value::index note :: is a character >> used to create new entries) it fails. >> One solution is as below, but for large number index - value (e.g 200 or >> more) the solution is very slow >> >> This solution contains >> >> 1. a populate macro to list all values >> 2. a wikify and list widget let sort values >> 3. a lookup macro to find index(s) for a value >> >> \define dataTiddler() myData >> \define myfilter() [<dataTiddler>indexes[]] >> >> \define populate() >> <$list filter="[subfilter<myfilter>]"> >> <$text text={{{[<dataTiddler>getindex<currentTiddler>]}}}/> >> </$list> >> \end >> >> \define lookup-index(val) >> <$list filter="[subfilter<myfilter>]" variable=idx> >> <$list filter="[<dataTiddler>getindex<idx>] +[match[$val$]]"> >> <tr> >> <td><$link to=<<idx>> /></td><td> $val$ </td> >> </tr> >> </$list> >> </$list> >> \end >> >> >> <table> >> <$wikify name=u text=<<populate>> > >> <$list filter="[enlist<u>nsort[]]"> >> <$macrocall $name=lookup-index val=<<currentTiddler>> /> >> </$list> >> </$wikify> >> </table> >> >> >> The above can be tested in https://tiddlywiki.com/ if one creates a data >> tiddler with the myData title containing the data of the previous post. >> >> Question: as stated above this solution is very slow for large numbers of >> data (index-value pairs). What alternative solution do you propose? >> >> Best wishes >> Mohammad >> >> >> On Thu, Feb 18, 2021 at 10:07 PM Mohammad Rahmani <[email protected]> >> wrote: >> >>> This is an old question and there are several solution for that, but not >>> for the case I explain here >>> >>> Assume you have a dataTiddler or JSON tiddler with data like below >>> >>> nella: -1 >>> rita: 1 >>> villa: 0 >>> lola: -7 >>> sina: 3 >>> cobra: 2 >>> fifa: -2 >>> zila: 3 >>> afra: 1 >>> >>> >>> I want to list data in this dictionary table sorted by value, so I >>> should have >>> >>> lola: -7 >>> fifa: -2 >>> nella: -1 >>> villa: 0 >>> afra: 1 >>> rita: 1 >>> cobra: 2 >>> sina: 3 >>> zila: 3 >>> >>> Note, there are duplicated values. The solution is that new entries >>> created from appending value to index like value::index do not work here! >>> As you need to use nsort >>> >>> >>> >>> Best wishes >>> Mohammad >>> >> -- > You received this message because you are subscribed to the Google Groups > "TiddlyWiki" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tiddlywiki/4f98a1bc-c408-4b6d-b89d-d4eebcb9561fn%40googlegroups.com > <https://groups.google.com/d/msgid/tiddlywiki/4f98a1bc-c408-4b6d-b89d-d4eebcb9561fn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/CAAV1gMBt%3Dm_008d1yJE10c0VYC%2B50J-LxQEDR63MY4NJ4Qf1xA%40mail.gmail.com.

