Posted to tcl by dandyn at Sun Nov 24 20:11:41 GMT 2024view pretty
set histBuf {trump Trump trump Trump trump trumps trumps trump trumps hello hello hello hello hello hello trump} proc wordcount {nr} { global histBuf unset -nocomplain data tmp result word set data [lrange $histBuf end-$nr end] foreach word [regexp -all -inline {\w+} $data] { incr tmp([string tolower $word]) } # make a list of array.. set result [array get tmp] # First sort by name, as a secondary key set result [lsort -stride 2 -index 0 $result] # Then sort by count, descending, as a primary key set result [lsort -stride 2 -index 1 -integer -decreasing $result] set exclude { after with that from says over more about will have said their this they been were into what could first some used than till lokalt efter säger inte från under vill flera blir alla vara blev fick över kommer nytt just direkt mycket måste därför ingen hela utan bakom stora bara igen eller andra allt aldrig bättre rätt description } # Print the values puts "\n[string repeat "=" 3] \[STATS\] [string repeat "=" 23]" foreach {w c} $result { # word must be at minimum 4 chars long if {![regexp {^\w{4,}$} $w]} {continue} # word must accur at least this many times or more if {$c <= 2} {continue} if {[regexp $w $exclude match]} {continue} puts [string repeat " " 4][format "%-10s = %s" $w $c] } puts "[string repeat "=" 24]" puts "Last $nr posts..\n" } wordcount 20