Le mardi 13 mars 2018 14:34:20 UTC+1, Christian Brabandt a écrit : > On Di, 13 Mär 2018, Ni Va wrote: > > > By Total time column for example. > > Sorry, I find your answers in general too terse to try to figure out > what exactly you are trying to do now and I do not feel like guessing. > > It looks as you'd like to sort buffer content, while you were saying > before you want to sort lists. > > Oh and BTW: please trim your quotes and write your statement below to > what you are referring to. > > Thanks, > Christian > -- > Der gesunde Menschenverstand ist blind sowohl für das äußerst Böse > wie für das höchst Gute. > -- Karl Jaspers
The csv file attached below it produced from this code particularly by from s:results list of strings. I import it into excel and then do a sort from max to min spent time by third column. I would do the same from this vimscript below on in order to sort by numeric float Total time column fun! helper#ybereportstats_timebyfunc(list) "{{{ "2. Total time by function " let totaltimelist = filter(copy(a:list), 'v:val =~ "TOTAL"') let pattime = '\(\d\+\:\d\+:\d\+\.\d\+\)' let patfunc = '\(\S\+()\)' let pattotaltime = '\(\d\+\(,\d\+\)\{0,1}\)' let linepat = '^.\{-}'.pattime.'.\{-}'.patfunc.'.\{-}'.pattotaltime.'.\{-}$' let listtotaltimespent = map(copy(totaltimelist)[0:s:nEch], 'substitute(v:val, linepat, "\\2@\\3@\\1", "")') " echomsg string(listtotaltimespent) " return for value in listtotaltimespent " k : class/func name " v : total time for the call.. " t : ..at time " try let [k,v,t] = split(value,'@') " catch /.*/ " echomsg 'error ' . string(value) " endtry if !has_key(s:dict,k) let s:dict[k] = { 'values' : [{'totaltime':v, 'time':t}] } else call extend(s:dict[k].values, [{'totaltime':v, 'time':t}]) endif endfor " echo s:dict " " 2. build results " let s:results = [join(["Func","Nb Occs", "Total time (ms)","Indicateur (ms/ech)"],s:sep)] for funclass in keys(s:dict) " Sum up total time for N occurs let nOccur = len(s:dict[funclass].values) " Sum up total time for N occurs let sum=0.0 for time in s:dict[funclass].values " echomsg time.totaltime let sum+=str2float(substitute(time.totaltime, ',', '.', 'g')) endfor " let sumstr = tr(printf("%s",sum),'.',',') let sumstr = printf("%s",sum) let indicateur=printf("%s",sum/nOccur) call extend(s:results, [funclass.s:sep.string(nOccur).s:sep.sumstr.s:sep.indicateur]) endfor " echomsg string(s:results) endfunction "}}} -- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_use" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.