[Richard Suchenwirth] 2005-10-04 - "Ellipsis" is Greek for "left out". More specifically, it's the name of the character(s) "..." (three ASCII periods, or fancier the Unicode \u2026) indicating that something was left out. When a string is truncated to fit into a given length, the following proc adds an ellipsis where necessary: proc string'limit {str length} { expr {[string length $str]>$length? "[string range $str 0 [incr length -4]]..." : $str} } % string'limit hello 10 hello string'limit "hello long string" 10 hello l... ---- ''[escargo] 4 Oct 2005'' - There are typographic rules for the use of ellipsis that make its use less than straightforward [http://graphicdesign.about.com/od/typesetting/a/ellipsis.htm]. ---- [JH] - The '''string replace''' command is designed to do the ellipsis without otherwise modifying the string. Just use: set str [string replace $str $length end ...] If the string is already shorter than $length, it will not be touched. ''There is the end case where [[string length $str]] > $length, but [[string length $str]] < $length + 3. Adding the ellipsis might make the string longer.'' ---- [JMN] - the little [overtype] package also supports the ellipsis. %package require overtype %set field1 [string repeat " " 5] %puts [overtype::left -ellipsis 1 $field1 1234567]nextfieldstring 12...nextfieldstring It too has an edge case where if the field is shorter than an ellipsis the result will contain just the ellipsis or part thereof. %set field1 [string repeat " " 2] %puts [overtype::left -ellipsis 1 $field1 1234567]nextfieldstring ..nextfieldstring ---- [Category Characters] | [Category String Processing] | [Arts and crafts of Tcl-Tk programming]