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
Doubt forming a variable in a foreach

Posted by darioml (darioml), 6 January 2006
Hi.

I'm a newbie in Tcl and I have a big problem... I'm sure it's very, very stupid...

I have a variable list:
Code:
lappend vars "Kp" "Kd" "Da"

and I want to change the values of a set of variables by this way:
Code:
set cKp $Kp
set cKd $Kd
set cDa $Da

but with a foreach loop.

I tried:
Code:
foreach a_var $vars {
set c$a_var $a_var
}

but it doesn't work, because it assigns the string "Kp" or "Kd"  or "Da" to cKp, cKd and cDa, respectively.

If I say:
Code:
set c$a_var $$a_var

it assigns "$Kp", "$Kd" or "$Da"

Any solution, please?

Dar

Posted by admin (Graham Ellis), 6 January 2006
You're looking for double interpollation .... something like

Code:
foreach pn {p1 p2 p3} {
set c$pn [set $pn]
}


is the way to go.  I set variables p1, p2 and p3 to 10, 24 and 35 and after running the loop above I also had variables called cp1 cp2 and cp3 with those same values.

Posted by darioml (darioml), 7 January 2006
Thanks a lot!

It works Ayyy, TCL has a lot of small secrets hidden, he he.

Dar



This page is a thread posted to the opentalk forum at www.opentalk.org.uk 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., 2012: 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