Training, Open Source computer languages

PerlPHPPythonMySQLhttpd / TomcatTclRubyJavaC and C++LinuxCSS

Search our site for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
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 06:33:13)

 
Associated topics are indexed under
T202 - Tcl/Tk - Tcl Fundamentals
T209 - Tcl/Tk - File and Directory Handling

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
1690 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 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., 2008: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho