version 1.1.1.1, 1999/09/28 21:25:36
|
version 1.2, 2000/02/22 18:10:27
|
Line 72 proc createClasslEditor { classlFile } {
|
Line 72 proc createClasslEditor { classlFile } {
|
button $actionFrame.sort -text "Sort" -command "classlSort $num" |
button $actionFrame.sort -text "Sort" -command "classlSort $num" |
button $actionFrame.print -text "Print" -command "classlPrint $num" |
button $actionFrame.print -text "Print" -command "classlPrint $num" |
button $actionFrame.find -text "Find" -command "classlFind $num" |
button $actionFrame.find -text "Find" -command "classlFind $num" |
|
button $actionFrame.merge -text "Merge" -command "classlMerge $num" |
pack $actionFrame.add $actionFrame.edit $actionFrame.delete $actionFrame.section \ |
pack $actionFrame.add $actionFrame.edit $actionFrame.delete $actionFrame.section \ |
$actionFrame.sort $actionFrame.print $actionFrame.find -side left |
$actionFrame.sort $actionFrame.print $actionFrame.find $actionFrame.merge\ |
|
-side left |
|
|
#window |
#window |
set leftFrame [frame $windowFrame.left] |
set leftFrame [frame $windowFrame.left] |
Line 738 proc classlDoFind { num type } {
|
Line 740 proc classlDoFind { num type } {
|
incr which |
incr which |
} |
} |
set max [$gClassl($num) index end] |
set max [$gClassl($num) index end] |
for {set i 0} { $i < ($max-1)} {incr i} { |
for {set i 0} { $i < ($max)} {incr i} { |
set current [expr ($i+$which)%$max] |
set current [expr ($i+$which)%$max] |
puts -nonewline "$current:" |
|
set entry [$gClassl($num) get $current] |
set entry [$gClassl($num) get $current] |
switch $type { |
switch $type { |
name { set tmp [string range [$gClassl($num) get $current] 24 53] } |
name { set tmp [string range [$gClassl($num) get $current] 24 53] } |
Line 751 proc classlDoFind { num type } {
|
Line 752 proc classlDoFind { num type } {
|
$gClassl($num) selection clear 0 end |
$gClassl($num) selection clear 0 end |
$gClassl($num) selection set $current |
$gClassl($num) selection set $current |
$gClassl($num) see $current |
$gClassl($num) see $current |
puts " " |
|
return |
return |
} |
} |
} |
} |
displayMessage "Not Found" |
displayMessage "Not Found" |
|
} |
|
|
|
########################################################### |
|
# classlMerge |
|
########################################################### |
|
########################################################### |
|
########################################################### |
|
proc classlMerge { num } { |
|
global gClassl |
|
|
|
set filename [tk_getOpenFile -title "Select a File to merge in"] |
|
|
|
if { $filename == "" } { return } |
|
set fileId [open $filename "r"] |
|
set maxlines [lindex [exec wc -l $filename] 0] |
|
set linenum 0 |
|
set newentries 0 |
|
displayStatus "Merging $filename" both $num |
|
set aline [gets $fileId] |
|
while {![eof $fileId]} { |
|
incr linenum |
|
set found 0 |
|
set stunum [string range $aline 14 22] |
|
set max [$gClassl($num) index end] |
|
for {set i 0} { $i < ($max)} {incr i} { |
|
set tmp [string range [$gClassl($num) get $i] 14 22] |
|
if { [regexp -nocase $stunum $tmp] } { |
|
set found 1 |
|
break |
|
} |
|
} |
|
if { !$found } { |
|
incr newentries |
|
$gClassl($num) insert end $aline |
|
} |
|
updateStatusBar [expr $linenum/double($maxlines)] $num |
|
set aline [gets $fileId] |
|
} |
|
removeStatus $num |
|
if { $newentries != 0 } { |
|
$gClassl($num) see $max |
|
$gClassl($num) selection set $max |
|
} |
|
displayMessage "Added $newentries students." |
} |
} |
|
|