Training, Open Source Programming Languages

This is page http://www.wellho.net/mouth/1426_Buf ... rison.html

Our email: info@wellho.net • Phone: 01144 1225 708225

Buffering up in Tcl - the empty coke can comparison

A comment on buffering in Tcl ....

if {1 == 0} {
When you finish drinking a can of Coke, you don't call
your local recycling plant up straight away and have them
send a truck around to collect the empty - that would be
inefficient to put it mildly. And in the same way,
a computer doesn't always save its output character by
character to the disc or screen - rather it buffers it up.
In most languages a clever strategy controls when the buffer
really is written (flushed) so that it's not very common for
the programmer to have to add an explicit flush request.
 
With Tcl, the default is that the output buffer flushes
each time it receives a new line character, which works
well enough most of the time. However, there are occasions
that you'll want to use the -nonewline option to puts to
allow you to generate a prompt and leave the cursor hanging
on the same line awaiting input from the user, and in such
cases you'll need an extra flush command.
}
 
puts -nonewline "How old are you "
flush stdout
set age [gets stdin]
puts "You are $age years old then"
 
if {1 == 0} {
Where you have multiple user inputs, you may prefer to
use a proc to read inputs and encapsulate the flush within
it, or you may prefer to run
 
fconfigure stdout -buffering none
 
which (technically) turns autoflush mode on rather than
turning buffering off!
}


If you want to comment a whole block of code .... you might like to use my little trick of testing for the impossible - "1 == 0" in the above - which lets you put code aside neatly, cleanly and nested. You'll see that I've even used it to provide documentation for today's entry ...
(written 2007-11-10)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
T202 - Tcl/Tk - Tcl Fundamentals
  [4324] Learning to program - variables and constants - (2014-11-22)
  [3917] BODMAS - the order a computer evaluates arithmetic expressions - (2012-11-09)
  [2442] Variable storage - Perl, Tcl and Python compared - (2009-10-08)
  [1469] Curley brackets v double quotes - Tcl, Tk, Expect - (2007-12-12)
  [1282] Stringing together Tcl scripts - (2007-07-29)
  [1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
  [782] Converting between Hex and Decimal in Tcl - (2006-06-28)
  [362] The ireallyreallywanna operator - (2005-06-28)
  [349] Comments in Tcl - (2005-06-16)
  [328] Making programs easy for any user to start - (2005-05-29)
  [210] Joining lists in Tcl. Indirect variables in Tcl. - (2005-02-12)
  [3] Looking for a donkey - (2004-08-05)

T209 - Tcl/Tk - File and Directory Handling
  [3617] The fileutil package and a list of file system commands in Tcl - (2012-02-18)
  [3429] Searching through all the files in or below a directory - Ruby, Tcl, Perl - (2011-09-09)
  [3320] Reading the nth line from a file (Perl and Tcl examples) - (2011-06-09)
  [3192] Tcl - Some example of HOW TO in handling data files and formats - (2011-03-04)
  [2467] Tcl - catching an error before your program crashes - (2009-10-22)
  [1467] stdout v stderr (Tcl, Perl, Shell) - (2007-12-10)
  [1407] Reading from another process in Tcl (pipes and sockets) - (2007-10-26)
  [785] Running external processes in Tcl and Tcl/Tk - (2006-06-29)
  [779] The fragility of pancakes - and better structures - (2006-06-26)


Back to
Melksham v Ely
Previous and next
or
Horse's mouth home
Forward to
Arrays in Tcl - a demonstration
Some other Articles
Integer v float - Python
Remembrance day - inside a church and inside the day
Travel Across Wiltshire - the game
Arrays in Tcl - a demonstration
Buffering up in Tcl - the empty coke can comparison
Melksham v Ely
Closer than you think - the next step
MySQL - table design and initial testing example
Wiltshire - speaker / after dinner talker offer
Castle Lodge Hotel, Ely, Cambridgeshire
4344 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1426_Buf ... rison.html • PAGE BUILT: Thu Sep 18 15:30:25 2014 • BUILD SYSTEM: WomanWithCat