proc grotoelems {f groupname} { global allelem set j 0 array set x {} array unset x array set y {} array unset y array set z {} array unset z set elelist [list] set elems [list] set allelem [list] while {1} { incr j set line [gets $f] if [string match "*$ --> $groupname*" $line] { incr j break } } unset line #puts $j # while {1} { incr i set line [gets $f] if { [string match "*add ele*" $line]} { if ([string match "*@@*" $line]) { set line [string trim $line {@@}] set line [string trim $line {!add ele}] append elelist $line #puts "Read line: $line at line $i" while {1} { set line [gets $f] if ([string match "*@@*" $line]) { incr i set line [string trim $line {@@}] append elelist $line #puts "Read line: $line at line $i" } else { incr i append elelist $line #puts "Read line: $line at line $i" break } } break } else { set line [string trim $line {!add ele}] append elelist $line #puts "Read line no has @@: $line at line $i" break } } if {[eof $f]} { close $f break } } set len [llength $elelist] #puts $elelist\n set m 0 set n 0 for { set i 0 } { $i < $len } { incr i } { set x($i) [lindex $elelist $i] #puts $x($i)\n set str $x($i) set lenstr [string length $x($i)] for { set j 0 } { $j <= $lenstr } { incr j } { if {[string index $str $j] == "/"} { set n [expr $j-1] lappend elems [string range $str $m $n] set m [expr $j+1] } } lappend elems [string range $str $n+2 $lenstr] } #puts $elems\n set lens [llength $elems] #puts $lens set p 0 for { set t 0 } { $t < $lens } { incr t } { set y($t) [lindex $elems $t] set lenyt [string length $y($t)] if {$lenyt != 0} { set y($t) $y($t) #puts $y($t)\n if {[scan $y($t) "%d-%d" a b] != 2} { lappend allelem $y($t) } else { set a [set a] set b [set b] for { set k $a } { $k <= $b } { incr k } { lappend allelem $k } } } } #puts "List of elements of Group $groupname are $allelem\n" set lenele [llength $allelem] for { set v 0 } { $v < $lenele } { incr v } { set z($v) [lindex $allelem $v] #puts $z($v) } } proc runpro {} { global allelem set file [open "C:/g95/group.txt" r] set groname "7th" grotoelems $file $groname puts "List of elements of Group $groname are $allelem\n" set groname "8th" grotoelems $file $groname puts "List of elements of Group $groname are $allelem\n" } runpro