[TR] - This is fun! Since the logs of [TkChat] are simple Tcl files and can be read as commands, we can use them to calculate some statistics with, so-called TkChatistics. The simplest case would be to look at the number of posts per person for a specified day. The following code does this (assuming the corresponding log file is accessible and in the same dir where the script is run): proc m {time author msg} { # # reads one line of TkChat log and accumulates author's post count # # time -> a timestamp # author -> author of post # msg -> message posted # # This procedure uses a global array 'count' to collect the data. # Each element in the array has the author as key # and the number of posts as the value. # global count if {$author eq ""} return if {$author eq "ijchain"} { if {[string index $msg 0] eq "*"} return set index [string first > $msg] set author [string range $msg 0 $index] } if {! [info exists count($author)]} { set count($author) 1 } else { incr count($author) 1 } } proc tkChatistics {mode} { # # print statistics # # mode -> the statistics type. Can be # dayCount -> number of posts per person a day # ... -> whatever you come up with! # # This procedure uses the global array 'count' for extracting # the data to print. # global count switch -- $mode { dayCount { set max 0 # convert data to a nested list: foreach item [array names count] { lappend mylist [list $count($item) $item] if {$count($item) > $max} {set max $count($item)} } # scale set scale 5 set fieldWidth [expr {$max/$scale}] foreach item [lsort -index 0 -integer $mylist] { set num [lindex $item 0] set author [lindex $item 1] set stars [string repeat * [expr {$num/$scale}]] puts "[format %${fieldWidth}s $stars] $num $author" } } default {puts "Not implemented. You have to write this yourself ..."} } } ############### main code ############### array unset count source 2008-05-14.tcl tkChatistics dayCount This is the output: ====== 1 1 1 dkf_Away 1 1 2 miguel 2 3 stever 3 teo 4 rmax 4 4 4 rfoxmich * 6 * 6 nem * 6 * 6 * 6 gerry * 7 * 8 jdc ** 10 steveo ** 10 aku ** 10 de ** 11 ** 12 gwlester ** 13 Zarutian ** 14 drh *** 15 emiliano *** 17 kostix *** 18 **** 20 **** 23 ***** 27 ***** 29 stu ****** 33 GPS ****** 33 jccampbell ****** 34 jenglish ******* 35 ******* 37 arjen ******* 38 suchenwi ******* 38 dgp ******** 43 mjanssen ******** 43 colin ********* 45 ********* 47 ********* 49 tclguy ********* 49 ************* 66 patthoyts *************** 76 dkf_ ***************** 85 dkf ********************** 113 ∆∆ ************************* 126 kbk ====== Quite interesting distribution. The "<>" around some names indicate, these people have been connected via a bridge and were not using [TkChat]. ---- **Ideas** The next step would be to add fetching the logs directly from tclers.tk and doing some more comprehensive statistics, like ... * average number of posts per day per person * relation of number of posts to size of posts * print the data with real plots using [Plotchart], [BLT], whatever * ... So, enhance and have fun! (Now back to work ...) [NEM]: You could [string trim] the user names to remove punctuation, as some of the usernames are the same (e.g. I assume dkf and dkf_ are both [dkf]!) ---- !!!!!! %| Category Community |% !!!!!!