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