Files
bin/abs_to_rel.tcl

75 lines
1.5 KiB
Tcl
Executable File

proc UnBusy {} {
. conf -cursor {}
.dir_e conf -cursor {}
.str_e conf -cursor {}
.doit conf -state normal
update
}
proc Busy {} {
. conf -cursor watch
.dir_e conf -cursor watch
.str_e conf -cursor watch
.doit conf -state disabled
update
}
proc Err {str} {
tk_dialog .dialog "Error" "$str" error 0 OK
UnBusy
}
proc Main {} {
global dir str
set dir "c:/windows/desktop/myweb"
set str "file:///c:\\windows\\desktop\\myweb\\"
label .dir_l -text "Directory to start searching in: "
entry .dir_e -textvar dir -width 30
label .str_l -text "String to delete: "
entry .str_e -textvar str -width 30
label .status -text "Status: Bored -- :^)" -relief groove
button .doit -text "Do It" -command DoIt
button .quit -text "Quit" -command {exit 0}
grid .dir_l .dir_e
grid .str_l .str_e
grid .status -sticky ew -pady 10 -columnspan 2
grid .doit .quit -sticky ew
update
}
proc DoIt {} {
global dir str
.status conf -text "Finding files in $dir"
Busy
if { [catch {glob $dir/*.html} files] } {
Err "Failed to find html files??? $files"
return
}
foreach filename $files {
.status conf -text "Processing file: [file tail $filename]" ; update
if { [catch {open "$filename" "r"} f] } {
Err "$f"
return
}
set data [read $f]
close $f
regsub -all -nocase "[list $str]" "$data" "" result
if { [catch {open "$filename.tmp" "w"} f] } {
Err "$f"
return
}
puts -nonewline $f "$result"
close $f
file rename -force $filename.tmp $filename
}
.status conf -text "Finished! ([clock format [clock seconds]])"
UnBusy
}
Main