Tuesday, 15 April 2014

Using a external variable in tcl -



Using a external variable in tcl -

i have script generates numbered file..

like this:

set no 0

file fn [open log_file_$no w]

i want remember no every time run script, i.e when running first time, file name should log_file_0 , 2nd time should log_file_1 etc.

is there way "remember" value of variable can used later?

you need store value disk somehow. hoodiecrow gives 1 sensible way it: in actual filename. other options:

in config file somewhere in database (sqlite this)

demo (1)

# read value if {[file exists num.dat]} { set fh [open num.dat r] set no [read -nonewline $fh] close $fh } else { set no 0 } set logfile log_file_${no} # ... # write value set fh [open num.dat w] puts $fh [incr no] close $fh

demo (2)

bundle require tcl 8.6 bundle require tdbc::sqlite3 set config_file config.db tdbc::sqlite3::connection create db $config_file # read value if {[file exists $config_file]} { set stmt [$db prepare "create table config (number integer)"] $stmt execute $stmt close set no 0 } else { set stmt [$db prepare "select number config limit 1"] $stmt foreach row { set no [dict $row number] } $stmt close } # ... # write value set stmt [$db prepare "update config set number=:new limit 1"] $stmt execute [dict create new [incr no]] $stmt close $db close

tcl

No comments:

Post a Comment