set input_file "c://input.txt"
set output_file "c://output.txt"
set list_total {}
if {[catch {set file_in [open $input_file r]} err_msg]} {
puts "Failed to open the file for reading: $err_msg"
return
}
if {[catch {set file_out [open $output_file w]} err_msg]} {
puts "Failed to open the file for writing: $err_msg"
close $file_in
return
}
while {[gets $file_in line] != -1} {
if {[regexp {^(<staff Name/s*=/s*"/s*([a-z]+[0-9]+)/s*"/s*ID/s*=/s*"/s*([0-9]+)/s*"/s*Score/s*=/s*"/s*([0-9.]+)/s*"/s*/>)$} $line match s_line s_name s_id s_score]} {
# puts $file_out $s_name/ $s_id/ $s_score
set list_cur {}
lappend list_cur $s_name $s_id $s_score
# set cur_staff ""
# for {set i 0} {$i < 3} {incr i} {
# set cur_staff $cur_staff/ [lindex $list_cur $i]
# }
# puts $file_out $cur_staff
lappend list_total $list_cur
}
}
set list_total [lsort -real -decreasing -index 2 $list_total]
for {set i 0} {$i < [llength $list_total]} {incr i} {
set list_cur_staff [lindex $list_total $i]
set cur_staff ""
for {set j 0} {$j < 3} {incr j} {
set cur_staff $cur_staff/ [lindex $list_cur_staff $j]
}
puts $file_out $cur_staff
}
close $file_in
close $file_out