Quantcast
Channel: I like Tcl/Tk. » Tcl
Browsing all 10 articles
Browse latest View live

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

なぜかFfidlで配列を引数に渡すサンプルがどこにも見当たらなかったので、作ってみました。 C言語のDLL側のサンプル。 関数pow2は任意の大きさの整数型配列とそのサイズを受け取り、 その配列の各要素を2乗した値に置き換えるものです。 /* pow2.c */ __declspec(dllexport) void pow2(int* out, int sz) { int i; for(i = 0;...

View Article


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

Cでは定数を定義するのに#defineを使うことが多いようですが、 Tclではプリプロセッサがないので、同じ方法は使えません。 グローバル変数を使うというのが最初に思い浮かぶと思うんですが、 switch文の分岐に変数を使うには特殊な方法が必要なことなどを考えるといろいろと 不都合なことが多いんですよ(すごくやっつけな説明です)。...

View Article


Image may be NSFW.
Clik here to view.

TkSQLite Tcl script function

こんなに便利な機能があったのに使ってなかったなんて。 こういうスクリプトを書いておいて、TkSQLiteの初期設定->SQLiteのタブに登録しておくと、 # unixepoch.tcl proc UnixEpoch {t} { clock format $t -format "%Y-%m-%d %H:%M:%S" } db function unixepoch UnixEpoch...

View Article

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

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

View Article

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

XOTclの最新安定版はteacupで配布してる1.6.7ですが、今のところTcl8.6b2で使うことができません。 私の場合、XOTclに依存しまくってるので、8.4から8.6に1つ飛ばしで移行しようと思ったところ、これだけが引っかかっていて、 仕方なく8.5に移行しました。 一方XOTcl開発チームの人々はNext Scripting Framework...

View Article


break可能なコードブロック

Tclにはgotoみたいに直列に書いたコードをスキップする制御構文がない。 例えばなんかデータを受信して、チェックしたり加工したりしたあとでどこかに記録するけど、 結果によらず受信回数はカウントしときたい場合、こんなコードを書いたとする。 proc on_receive {data} { global cnt set res [validate $data] if {$res == 1} {...

View Article

LinkedList in XOTcl

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

View Article

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

たまにやるけど忘れるので。スペースを含まないときは別のやり方でも開くのですが、 一般的には以下のようにします。cmdの引数にエスケープされた状態で渡すというのがキモです。 string mapの変換ルールではエスケープシーケンスが適用されることに注意します。 set office_dir {C:\Program Files\Microsoft Office} set...

View Article


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

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

View Article


Tcl SQLite build configuration

Prerequisites Build tool = MinGW GCC v4.9.2 Tcl build path = /c/src/tcl8.6.3/win Tcl install path = /c/bin/tcl8.6.3 SQLite3 build path = /c/src/sqlite-autoconf-3080704/tea wxSQLite3 secure source path...

View Article
Browsing all 10 articles
Browse latest View live