|
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 FundamentalsT209 - Tcl/Tk - File and Directory Handling
Some other Articles
Integer v float - PythonRemembrance day - inside a church and inside the dayTravel Across Wiltshire - the gameArrays in Tcl - a demonstrationBuffering up in Tcl - the empty coke can comparisonMelksham v ElyCloser than you think - the next stepMySQL - table design and initial testing exampleWiltshire - speaker / after dinner talker offerCastle Lodge Hotel, Ely, Cambridgeshire
|
1891 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 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).
|
|