Tcl

no image

Tcl SQLite build configuration

Prerequisites Build tool = MinGW GCC v4.9.3 Tcl build path = /c/src/tcl8.6.6/win Tcl install path = /c/bin/tcl8.6.6 SQLi…

no image

Tclでベクトル計算するサンプル

SXGAのリモートデスクトップウィンドウをアスペクト比を保ちつつ65%に縮小し、FullHDのディスプレイの右下に配置したい。手計算でも簡単にできることだが、今まで使ってなかった行列計算ライブラリの練習台に使うことを思いついた。 +----…

no image

Tcl/Tkで任意のフォルダをデフォルトファイラーで開く

たまにやるけど忘れるので。スペースを含まないときは別のやり方でも開くのですが、 一般的には以下のようにします。cmdの引数にエスケープされた状態で渡すというのがキモです。 string mapの変換ルールではエスケープシーケンスが適用される…

no image

LinkedList in XOTcl

いわゆる双方向連結リストというデータ構造ですが、かつてはリチャードストールマンに、Tclには構造体がないからlinked listを作れないと指摘されていました。今ではいくつもあるオブジェクト指向拡張を使い、クラスを導入すればTclでも他の…

no image

break可能なコードブロック

Tclにはgotoみたいに直列に書いたコードをスキップする制御構文がない。 例えばなんかデータを受信して、チェックしたり加工したりしたあとでどこかに記録するけど、 結果によらず受信回数はカウントしときたい場合、こんなコードを書いたとする。 …

no image

XOTcl というか Next Scripting Framework 2.0b3のコンパイル

XOTclの最新安定版はteacupで配布してる1.6.7ですが、今のところTcl8.6b2で使うことができません。 私の場合、XOTclに依存しまくってるので、8.4から8.6に1つ飛ばしで移行しようと思ったところ、これだけが引っかかって…

no image

ipconfigを呼ばないでMACアドレスのリストを取得する(twapi 3.1.17対応ほか)

「ipconfigを呼ばないでMACアドレスのリストを取得する」を書いた時点のtwapiのバージョンはたしか3.0.32だったんじゃないかと思いますが、3.0.32の次のバージョン3.1.17が去年の暮に出ていました。出てるのは知ってたんで…

no image

TkSQLite Tcl script function

こんなに便利な機能があったのに使ってなかったなんて。 こういうスクリプトを書いておいて、TkSQLiteの初期設定->SQLiteのタブに登録しておくと、 # unixepoch.tcl proc UnixEpoch {t&…

no image

Tcl array関係のお役立ち関数2つ

Cでは定数を定義するのに#defineを使うことが多いようですが、 Tclではプリプロセッサがないので、同じ方法は使えません。 グローバル変数を使うというのが最初に思い浮かぶと思うんですが、 switch文の分岐に変数を使うには特殊な方法が…

no image

FfidlでC言語のエクスポート関数に配列のポインタを渡して内容を書き換えてもらう

なぜかFfidlで配列を引数に渡すサンプルがどこにも見当たらなかったので、作ってみました。 C言語のDLL側のサンプル。 関数pow2は任意の大きさの整数型配列とそのサイズを受け取り、 その配列の各要素を2乗した値に置き換えるものです。 /…