Hi Mohammad,

Whatever process you use to make the data tiddler needs to escape the 
colon's. Like replace ":" with __SEPARATOR__ . And then the code above 
would replace __SEPARATOR__ with ":" in the report.

Yes, JSON fixes some problems. But it is not-human readable without a lot 
of formatting, and it is very unforgiving. Like a single comma at the end 
of an array sequence will throw an error. This makes it difficult to 
quickly edit  JSON by hand, since you have to go comma-wrangling every time.

On Thursday, February 18, 2021 at 9:30:33 PM UTC-8 Mohammad wrote:

> 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/64429d00-315f-4240-a099-88e533db0764n%40googlegroups.com.

Reply via email to