作者: 水羽信男
日時: 2004/4/10(11:26)
ご無沙汰しています。

リラの花の美しさをはじめて知ったり、見知らぬ街の春は
新たな発見があります。

先日、ご教示いただいたunique.tclの改良点。なるほど
と関心しながら、理解しました。ありがとうございます。

その後、必要があって次のようなプロシージャを作って
作業をしています。Tclっていろいろできるのですね。

proc insert {filename colum filename2} {
    set fd [open $filename]
    fconfigure $fd -encoding unicode
     set data [read $fd 1]
     if [string equal $data \ufeff] {
         set data [read $fd]
     } else {
         append data [read $fd]
     }
     close $fd
     set fd [open $filename2]
     fconfigure $fd -encoding unicode
     set data2 [read $fd 1]
     if [string equal $data2 \ufeff] {
         set data2 [read $fd]
     } else {
         append data2 [read $fd]
     }
     close $fd
     set data3 [lsearch -all -regexp -inline \
     [split $data \n] .+]
     set data4 [lsearch -all -regexp -inline \
     [split $data2 \n] .+]
     set data5 {}
     foreach i $data3 j $data4 {
     lappend data5 [linsert $i $colum $j]
     }
     set data6 [join $data5 \n]
}

ただこの間、いろいろ試行錯誤していた気付いた点ですが、
proc unicodeout {text filename} {
    set fd [open $filename w]
    fconfigure $fd -encoding unicode
    puts $fd \ufeff$text
    close $fd
}
でファイル出力するためには、たとえば先のinsert.tclの最
後は puts [join $data5 \n] ではだめで、
set data6 [join $data5 \n]でなければダメなのですね。

分かっていく、ということは幾つになっても、楽しいことです。

みずは