Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
String functions in TCL

Posted by shafa.fahad (shafa.fahad), 31 August 2006

I am relatively new to TCL...

I have been trying to extract a particular string from a variable which has multiple strings. couldn't find the appropriate functions for it...

I have a variable var, i.e.,

set var "this is the string which i have"

Q: i want to check if the variable var has "which" in it, if so it should reutrn 1 else -1 (or even 0) ?

it would be helpful if i can get some ideas for the same

Posted by admin (Graham Ellis), 31 August 2006
set posn [string first which $var]

Will set posn to -i if "which" isn't in $var, or the position it starts at if it IS in there.  In Tcl, everything's a command, so do your test in square brackets.

If you write
if {[string first which $var] > -1} {
you can perform a test / select a piece of code based on whether or not "which" occurs in your string.

Posted by shafa.fahad (shafa.fahad), 31 August 2006
Thanks Graham,

That was really helpful...

Also I would like to know how to retrieve the string following the string which is found?


set var "/usr/bin/ksh utils/mailMover"
if {[string first "/mailMover " $var] > -1} {
puts "Here it should print"

Please let me the appropriate function for the same....

Thanks in advance

Posted by admin (Graham Ellis), 31 August 2006
In Tcl, everything's a command  

use the string first command to find the "break point", then the string range command to extract the part you want.   The code would read something like:

set lastpart [string range $var [string index " " $var] end]

Posted by shafa.fahad (shafa.fahad), 31 August 2006
Thanks Graham....  

This page is a thread posted to the opentalk forum at and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2022: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: • WEB: • SKYPE: wellho