Posted to tcl by miguel at Sat Apr 23 16:00:50 GMT 2011view pretty
set inputFname /foo/bar/sum.pdf set outputFname /foo/bar/sum2.pdf set indicesFname /foo/bar/idxes set chunkSize 4000 set pagemarker \f; #or whatever it is set f [open $idxes] set idxdata [read $f] close $f # build a list of indices and replacements in idxlist/idxrepl set idxlist [....] set idxrepl [....] unset idxdata set in [open $inputFname] set out [open $outputFname w] set inbuf {} set i 0 set idxused 0 while {![eof $in]} { append inbuf [read $in $chunkSize] set inlist [split $inbuf $pagemarker] if {![eof $in]} { set inbuf [lindex $inlist end] set inlist [lrange $inlist 0 end-1] } else { set pagemarker {} } foreach page $inlist { while 1 { set found [regsub [lindex $idxlist $i] $page [lindex $idxrepl $i] page] if {$found} { set idxused 1 } elseif {$idxused} { incr i set idxused 0 continue } puts -nonewline $out $page$pagemarker break } } }
Comments
Posted by miguel at Sat Apr 23 16:03:08 GMT 2011 [text] [code]
untested not suntested ...