Tcletで使えないTclコマンドです。
bgerror cd close exec exit fconfigure file glob load open puts pwd socket source vwait |
Tcletで使えないTkコマンドです。
bell clipboard grab menu selectoin send tk tkwait tk_choosecolor tk_getOpenFile tk_getSaveFile tk_messageBox toplevel wm |
コマンドに制限はありますが、この制限内でもおもしろいTcletは作れると思います。
一度、Tcletサンプル を覗いてみるといいでしょう。
<OBJECT ID="PluginHostCtrl" CLASSID="CLSID:14E78123-A693-4F27-B6EE-DDDE18F93D3A" WIDTH="400" HEIGHT="150" > <PARAM name="type" value="application/x-tcl"/> <PARAM name="pluginspage" value="http://www.tcl.tk/software/plugin/"/> <PARAM name="src" value="http://path/to/myTclet.tcl"/> <PARAM name="someArg" value="itsValue"/> <EMBED TYPE="application/x-tcl" PLUGINSPAGE="http://plugin.tcl.tk/" FRAMEBORDER="NO" WIDTH="400" HEIGHT="150" SRC="http://path/to/myTclet.tcl" someArg="itsValue" > </EMBED> </OBJECT> |
# SJISやEUCコードは使えません。 set var "日本語" # UNICODE文字コード(\uXXXX形式)は使えます。 set var "\u65e5\u672c\u8a9e" |
このような文字コード変換はスクリプトにやらせる方が良いでしょう。
以下は変換スクリプト(native2ascii)の例です。
# # native2ascii.tcl # if {$argc != 1} { puts stderr "Usage: native2ascii filename" exit } if {[catch {open $argv r} fid]} { puts stderr $fid exit } while {[gets $fid line] >= 0} { set oline "" for {set i 0} {[set c [string index $line $i]] != ""} {incr i} { if {$c < "\x80"} { append oline $c } { append oline \\u[format %04x [scan $c %c]] } } puts stdout $oline } close $fid |
使い方はこんな感じになります。
tclsh native2tcl.tcl sample1.tcl > sample2.tcl |
この手の変換は、エディタで簡単にできた方が便利なので、代表的なエディタのマクロを紹介する。