For 2023 - we are now fully retired from IT training. We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here)) |
Tcl sandwich - lists in Tcl
In Tcl, a list is simply a string that's held in the same format (i.e. with the same delimiters and protection) as a series of parameters to a Tcl command. The split command (which does a great deal in languages such as Perl and PHP) really does little more than change the delimiters if need be, and add protective \ { and } characters - again only if need be.
Here's an example where we're splitting and manipulating the contents of a sandwich.
tcl> set sarnie "cheese, marmite, onion, pickle"
tcl> set d4 [split $sarnie ,]
tcl> set d4
cheese { marmite} { onion} { pickle}
At this point, the braces have been added to protect the space character which is part of the individual ingredient
tcl> foreach ingrid $d4 {
=> puts [string trim $ingrid]
=> }
cheese
marmite
onion
pickle
I used string trim to remove the space before printing each element out
Let's rejoin the ingredients into a string using the word "and" as the glue
tcl> set d5 [join $d4 " and "]
tcl> set d5
cheese and marmite and onion and pickle
or as an alternative, print it out sorted into the order of ingedients with my favourite first ;-)
tcl> lsort $d4
{ marmite} { onion} { pickle} cheese
tcl> (written 2004-12-08, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles T206 - Tcl/Tk - Lists [463] Splitting the difference - (2005-10-13) [781] Tcl - lappend v concat - (2006-06-27) [1282] Stringing together Tcl scripts - (2007-07-29) [1283] Generating traffic for network testing - (2007-07-29) [1334] Stable sorting - Tcl, Perl and others - (2007-09-06) [1402] Tcl - append v lappend v concat - (2007-10-23) [1405] Sorting in Tcl - lists and arrays - (2007-10-24) [1601] Replacing the last comma with an and - (2008-04-04) [2468] What are Tcl lists? - (2009-10-22) [2472] split and join in tcl and expect - (2009-10-23) [3285] Extracting data from a string / line from file - Tcl - (2011-05-10) [3394] The difference between lists and strings - Tcl - (2011-08-16) [3415] User defined sorting and other uses of callbacks in Tcl and Tk - (2011-09-02) [3582] Tcl collections - lists, dicts and array - (2012-01-16) [3583] Expanding a list of parameters in Tcl - {*} and eval - (2012-01-17) [3618] lists and struct::list in Tcl - Introduction to struct::list and examples - (2012-02-18) [4209] Lists in Tcl - fundamentals in a commented source code example - (2013-11-16) [4454] Everything is a string - even a list - (2015-03-11) [4455] Working out distance between places, using OS grid references and a program in Tcl - (2015-03-11)
Some other Articles
Programming in isolationRecent technical articlesexample of Tcl namespaces and packagesA comment on commentsTcl sandwich - lists in TclNetwork CameraColour for accessToo technical?Comparison Chart for Perl programmers - list functionsJust provide a room and the students
|
4759 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, 88, 89, 90, 91, 92, 93, 94, 95, 96 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).
|
|