Check list and file reading.
I have written a code to create checklist to read Id and names from a text file.
{BEGIN LEGEND}
Entity # Title
1 abc
2 efs
3 afdsf
4 xzcH
5 sdsafd
6 wqerwf
During file reading I want to skip first two lines and take lines from 3 to 10. What change should be made in the code?
Similarly, in the checklist, when I tick and press OK, the corresponding ID should be stored in a variable. WHat should I do?
The code is given below!!!!!!!!!!!!!!!!
$w hide apply;
set recess [$w recess]
proc ::texample::OnSelect {W S c} {
puts [info level 0]
}
hwtk::selectlist $recess.sl -stripes 1 -selectmode multiple -selectcommand '::texample::OnSelect %W %S %c'
pack $recess.sl -fill both -expand true;
$recess.sl columnadd id -text Id
$recess.sl columnadd entities -text 'Section Name'
#####################
set fileName [tk_getOpenFile]
set fp [open $fileName r]
set ::lines [split [read $fp] '\n']
set i 0
foreach line $::lines {
set ID [string range $line 7 8]
set NM [string range $line 14 20]
$recess.sl rowadd row$i -values
incr i
}
close $fp;
}
$w post
Find more posts tagged with
@tinh Please help for last Query
@tinh can you tell me how can I create a similar window outside hM. What will be the change? Please help me.
Thanks for your kind support.
Hi Jouher,
You need to load hwtk package by these commands:
set AltairHome 'C:/Altair/2017'
if {[file join $AltairHome hw tcl] ni $::auto_path]} {
lappend ::auto_path [file join $AltairHome hw tcl]; #because hwtk needs some packages in this
lappend ::auto_path [file join $AltairHome hw tcl hwtk];
}
package require hwtk
source [file join $AltairHome hw tcl hwtk init.tbc]
#then you can create its widgets:
hwtk::selectlist .sl ...
...
Hi Jouher,
You need to load hwtk package by these commands:
set AltairHome 'C:/Altair/2017'
if {[file join $AltairHome hw tcl] ni $::auto_path]} {
lappend ::auto_path [file join $AltairHome hw tcl]; #because hwtk needs some packages in this
lappend ::auto_path [file join $AltairHome hw tcl hwtk];
}
package require hwtk
source [file join $AltairHome hw tcl hwtk init.tbc]
#then you can create its widgets:
hwtk::selectlist .sl ...
...
I did not understand set altair home. Please explain. While I run as batch using wish tool, its showing cant run packages.
@tinh When I execute this command
'source [file join $AltairHome hw tcl hwtk init.tbc]' Its throwing error.
can't rename to 'xml::tdomparser': command already exists
@Tinh, It works.
could you tell me how I will add to my selectlist a filter option. Like, if I press 'A' and enter 'ok', all names with A will come.
Hi,
If you want to ignore the first 2 lines, you just write 'gets' twice.
Example:
set fh [open [tk_getOpenFile] r];
gets $fh null;
gets $fh null;
while {! [eof $fh]} {
gets $fh cl;
puts $cl;
}
close $fh
Thanks,
Imoto