●●●●TCL/TKなら俺 ..
116:デフォルトの名無しさん
07/12/23 17:22:37
ActiveTcl8.5まだあ
117:デフォルトの名無しさん
07/12/23 18:19:04
>>116
もう出た。もう出たけど、ライブラリは付いていない罠。
ライブラリは8.4のを使うみたい?
118:デフォルトの名無しさん
07/12/31 09:21:10
>>117
URLリンク(groups.google.com)
の
Is ActiveTcl 8.5 release to be used as it is?
の議論によると、今のところ8.4に上書きするのが正しいらしい。
119:本田
08/01/01 22:35:05
>>118
アンインストールしないで、
上書きすると、
tclsh84とtclsh85の両方が使えるよ。
120:本田
08/01/07 06:33:26
>Latest Release: Tcl/Tk 8.4.17 (Jan 4, 2008)
URLリンク(www.tcl.tk)
121:デフォルトの名無しさん
08/01/12 04:09:05
EDAの制御用でもなく、単純なツールを書くのに
tclshとか利用すんのマジでやめてくれ > R社
122:デフォルトの名無しさん
08/01/12 08:22:41
Renesas?
123:デフォルトの名無しさん
08/01/12 15:19:29
単純なツールなら別にいいじゃん
124:デフォルトの名無しさん
08/01/12 23:55:37
ローカルに手を加えたいができないユーザ多数なんよ。
なんせtclなんかで書いてあるからな。
125:デフォルトの名無しさん
08/01/13 03:24:36
単純なツールならどの言語で書かれていても調べて改造するくらいできるのでわ
126:デフォルトの名無しさん
08/01/13 09:24:32
ActiveTcl8.5のchm見てたら
いつの間にやらチュートリアルついてるのな
今初めて気付いた
127:デフォルトの名無しさん
08/01/13 09:30:28
Whitespaceで書かれたら改造する自信ないな
128:本田
08/01/13 14:26:09
>Micropolis Downloads
URLリンク(www.donhopkins.com)
>Micropolis, Unix Version.
> This game was released for the Unix platform in or about 1990 and has been modified for inclusion in the One Laptop Per Child program.
> Copyright (C) 1989 - 2007 Electronic Arts Inc.
>If you need assistance with this program, you may contact:
URLリンク(www.donhopkins.com)
Tcl6.4とTk2.3のソースコードが丸ごと入ってる。
129:デフォルトの名無しさん
08/01/13 16:10:55
シムシティってTclで書かれてたんだ・・・
130:本田
08/01/18 07:45:20
>>120
>ActiveTcl 8.4.17.0
URLリンク(www.activestate.com)
131:デフォルトの名無しさん
08/01/19 03:51:09
Tcl/Tk紹介ビデオ
URLリンク(www.nicovideo.jp)
132:デフォルトの名無しさん
08/01/19 11:27:48
Tk がファイルのドラッグドロップに対応していて、
OpenGL の描画先として簡単に指定できるなら
wxWidgets から乗り換えようかと思っているんだけど、どうなんでしょうか。
133:本田
08/01/19 12:44:05
>>132
TkDND
>URLリンク(sourceforge.net)
>tkdnd is an extension that adds native drag & drop capabilities to the tk toolkit.
> It can be used with any tk version equal or greater to 8.3.3
>and currently only the UNIX (X-Windows)
>and Microsoft Windows operating systems are supported.
134:本田
08/01/19 12:45:44
>>132
>Togl ― a Tk OpenGL widget
>Copyright (C) 1996-2002 Brian Paul and Ben Bederson
URLリンク(togl.sourceforge.net)
135:本田
08/01/19 12:49:01
>>132
>TkOGL
URLリンク(hct.ece.ubc.ca)
>TkOGL is a package extension to the Tcl scripting language that enables a user to utilize OpenGL,
> a multi-platform API for interactive 2D and 3D graphics applications.
> TkOGL makes it possible for the user to display OpenGL graphics on the Tk canvas along with other Tk widgets.
> This creates opportunities for developers,
> educators and presenters to script up interactive demos,
> graphical learning models, and colorful presentations.
> Designing a simple user interface that interacts with OpenGL graphics is much simpler and much faster through the Tcl interpreter.
> Much like other Tk Widgets,
> OpenGL graphics can be rendered step by step so users can see the progressive steps appear on the canvas.
> TkOGL eliminates the use of compilers, shared libraries, header files and utility toolkits such as GLUT.
136:デフォルトの名無しさん
08/01/19 14:10:43
今OpenGLやるならTogl よりTcl3Dがいいぜ。サンプルも多いし。
それよりwxから乗り換えようと思った動機を教えて欲しいんだぜ。
137:本田
08/01/19 14:21:52
>>136
URLリンク(www.tcl3d.org)
138:デフォルトの名無しさん
08/01/24 17:38:15
みなさん、こんにちは。
突然おじゃましてすみません。
一つ質問があります。
実は先日、Linux用のあるシミュレーションソフトを購入して、
それをASUS Eee PCというPCにインストールして動かしているのですが、
もっと計算速度が上がればなーと考えていてふと思い付いたのが、
もしPS3にLinuxを入れて動かせばいいのかもしれない、と。
そのシミュレーションソフトはTCL/TKというグラフィカル・ツールキットを
先に入れておく必要があるのですが、そのTCL/TKというものはPS3にも
対応しているのでしょうか?
ちなみにEee PcにはActiveTcl8.4というものをインストールしました。
このシミュレーションソフトは、なにやらwishというものを必要とするとかで、
詳しいことはわかりません。
139:デフォルトの名無しさん
08/01/24 22:31:28
>138はマルチ
140:本田
08/01/24 23:28:35
>>138
まずサポートセンターに電話する。
141:デフォルトの名無しさん
08/01/24 23:44:55
8.5正式版でたけどOusterhout本の改訂の話ってどうなったのかなあ。
142:132
08/01/25 10:30:05
どもありがとう
今 wxPython + PyOpenGL でゲームを作ってるけど
wxWidgets はDLLのサイズがでかくてどうにかならんものかと。
あと Python には標準で Tkinter がついてるから、Tk でできるならその方が何かと楽。
143:本田
08/01/25 21:55:41
>epcEdit XML/SGML editor
>Available for Windows, Linux, and Solaris - use one application on all relevant platforms in your organization.
>Download your free copy!Download your free copy of epcEdit for Windows, Linux or Solaris!
URLリンク(www.epcedit.com)
>News: epcEdit is now free for personal and commercial use!
>epcEdit will become available under an open source license in the future,
> after we have removed copyrighted third-party components.
> In the meantime the current version of epcEdit can be used free of charge.
> An unlimited activation key can be downoaded here.
144:デフォルトの名無しさん
08/01/26 15:08:49
ひとつお聞きしたいことがあります。
Tcl/Tkを使って連続的にデータを処理表示しているのですが、
数時間たつと、
X Error of failed request: BadAlloc
(insufficient resources for operation)
Major opcode of failed request: 53
というエラーを吐いて止まってしまいます。
どこが悪いか調べたいので、
Tcl/Tkのプログラムで、残り資源を表示するような機能はありませんか。
解決策をご存知でしたら教えてください。
145:デフォルトの名無しさん
08/01/26 17:38:21
psコマンドで調べたらええんちゃうの。
何の処理をしてるのかしらんが、Tkのありがちな
罠として画像の解放しわすれのようなオチの予感がする。
146:本田
08/01/27 12:32:24
>>143
>TkSGML
URLリンク(www.epcedit.com)
>SGML widget reference manual
147:デフォルトの名無しさん
08/01/27 13:38:41
Tclでヒープ的なメモリ割り当てをしてGCすることってできないのかなあ。
148:デフォルトの名無しさん
08/01/27 16:00:48
>>145
144です。ありがとうございます。
自分でもDeleteコマンドで削除して、気をつけてはいるんですが、
どこかうまくいってないようです。
149:デフォルトの名無しさん
08/01/27 16:05:09
>>147
ローカル変数の割り当てはそうしてるだろ
150:本田
08/01/27 18:19:52
>>144
> X Error of failed request: BadAlloc
> (insufficient resources for operation)
> Major opcode of failed request: 53
これはおさらく、
X Serverのエラーで、
TclやTkのエラーではない。
>LECTURE 14 エラーイベント
URLリンク(homepage3.nifty.com)
>BadAlloc 要求リソースの割り当てに失敗
151:デフォルトの名無しさん
08/01/27 19:52:34
>>149
ローカル変数は全然ヒープ的じゃないよー。スコープ=寿命でスタック的なもの。
152:デフォルトの名無しさん
08/01/29 14:41:57
はじめまして、私は新人プログラマです。
ひとつお伺いしたいことがあります。
IPフィルタリング機能をTCLで行ないたいと思っております。動作としては、下記のIPアドレスがサイトへアクセスしてきた場合
ページを閲覧できる様にし、それ以外のIPアドレスが来た場合は閲覧出来ない様にするといった感じのものです。OSはSolarisを使用して行います。
特定のIP
1.1.1.1
1.1.1.2
以上の事から、TCLで上記の様な制御を行なうにはどういったソースを書けば宜しいのでしょうか。例題的な感じで結構ですので御回答宜しくお願いします。また、これらの内容をみて不明点などが御座いましたら
ご質問頂けたらと思います。
ちなみに、下記方法で実施してみましたがダメでした。
【リモートホスト情報の取得】
CGI プログラミングをする上でクライアントのリモートホストの情報を利用したい場合がある。 例えば特定のホストからのアクセスを規制したい場合などである。
サーバに Apache を使用していれば IP アドレスの値が環境変数 REMOTE_ADDR から取得できる。 Tcl では $env(REMOTE_ADDR) のようにして環境変数を取り出す。
さらに Apache の設定次第では環境変数 REMOTE_HOST にホスト名が与えられているかもしれない。 そうでない場合は IP アドレスからホスト名を取り出す必要がある。
このためには TclX に含まれている host_info コマンドを使えばよい。 このコマンドは Perl での gethostbyaddr 関数や gethostbyname 関数に相当する機能を提供する。
ホスト名を取り出す場合はサブコマンド official_name を以下の書式で使用する。 引数 host には $env(REMOTE_ADDR) で得た値などを与える。
153:デフォルトの名無しさん
08/01/29 19:02:57
長文乙。
そんなことより、Apacheの設定見れ。
154:デフォルトの名無しさん
08/01/29 21:19:27
if { $env(REMOTE_ADDR) in $blacklist } {
exit
}
こんなのでいいのか?こんな簡単なことでいいのか?
簡単すぎて不安になるぜ!
155:デフォルトの名無しさん
08/01/29 21:21:40
新人がTclでウェブプログラミングやるっていったいどんな会社なのか興味があるなあ。
なんにせよ152が書いたコードを張るところからだね。
156:デフォルトの名無しさん
08/01/29 21:25:37
>>154
in演算子ってTcl8.5からだからまだ152の環境に入っていない可能性が高いね。
157:デフォルトの名無しさん
08/01/29 22:03:18
ていうかどうせならTclHttpd試してみてくれよ。
158:本田
08/01/30 19:46:55
>>157
TclHttpdは、アプリケーションに組込むのが主流だろうな。
つまりアプリケーションサーバー。
>>143
>epcEdit XML/SGML editor
に組込まれていてヘルプを見るのに使われている。
159:本田
08/01/30 20:59:27
>>152
>サーバに Apache を使用していれば IP アドレスの値が環境変数 REMOTE_ADDR から取得できる。
同時に複数の人がApacheに接続すれば、
環境変数 REMOTE_ADDRには、
誰のIP アドレスが入るのかな?
最初の人か?
最後の人か?
160:デフォルトの名無しさん
08/01/30 21:48:36
CGIなんだからそれぞれの人のでしょ。
161:本田
08/01/30 22:47:10
>>160
そうですね。
162:デフォルトの名無しさん
08/01/31 11:32:40
えーっと・・・
163:デフォルトの名無しさん
08/02/03 19:01:06
正直Tcl使うよりRuby/TK使った方が便利なんだが・・・
164:デフォルトの名無しさん
08/02/03 19:18:05
俺は C から使うのが便利だな
165:デフォルトの名無しさん
08/02/03 20:38:40
で、Ruby/Tkで書いたアプリって何かあんの?
166:デフォルトの名無しさん
08/02/03 20:45:24
やっぱPerlで
167:デフォルトの名無しさん
08/02/03 22:23:35
non-TclのTkバインディングってろくにドキュメント整備されてるやつがない印象がある。
168:デフォルトの名無しさん
08/02/05 18:14:27
俺も普段よくRuby使うからRuby/Tk触ったことはあるが…
Ruby流でもTcl流でもない、妙な違和感があるんだよなぁ。
169:デフォルトの名無しさん
08/02/06 11:36:52
数値計算のパラメータ設定マクロ用にtclを使いたいのですが、
C, C++プログラムにtclを組込む方法はどうやれば良いですかね?
170:169
08/02/06 14:25:55
Tcl_CreateInterpでインタプリタを作って、Tcl_EvalFileでtclで記述したファイルを実行、
特定の名前の変数にパラメータを入れて、Tcl_GetVar等でパラメータの入った変数を読み出せばできますね。
自己レスすまそ
171:本田
08/02/07 00:52:46
>>157
>AOLserver
URLリンク(sourceforge.net)
>AOLserver is a multithreaded,
> Tcl-enabled,
> massively-scalable and extensible web server tuned for large scale, dynamic web sites.
> AOLserver also includes complete database integration and a dynamic page scripting language.
172:デフォルトの名無しさん
08/02/08 00:00:42
8.5版に入換えたらeval命令が異様に遅くなった
md5を計算するのにevalを多用した箇所がすごいことになってしまった。困った。
173:デフォルトの名無しさん
08/02/08 00:31:28
MD5なんかCで実装するもんじゃないのか
174:デフォルトの名無しさん
08/02/08 00:54:46
よくわからんが、md5なんてtcllib_critclとかTrfなんかの
Cで書いた枯れた拡張をつかうものなのでわ・・・。
175:本田
08/02/08 19:00:15
Eggdrop Bots and Tcl Scripts
URLリンク(www.ruptbot.com)
URLリンク(www.ruptbot.com)
URLリンク(www.ruptbot.com)
176:デフォルトの名無しさん
08/02/08 22:56:12
172です。誤解を招くような文章で申し訳ない。改めて書直します。
8.4版->8.5版に乗換えて快適な環境になりましたか。小生の場合は疑問符です
小生の場合、既存のプログラムの内の1つが異常なくらい遅くなりました。
調べると1つのprocが極端に遅くなっていた。このprocはRFC1321の手順通りにmd5を計算しているだけで、何の変哲もないprocですが、evalを多用しています。
今の所evalの処理が遅くなったのかと疑っています。無論真相は不明です。
177:デフォルトの名無しさん
08/02/08 23:19:07
よっしゃ3連休で暇な俺が8.5に最適化してやるからうpしろ。
178:デフォルトの名無しさん
08/02/09 02:17:51
あれ、evalか...exprかと勝手に脳内変換してたよ
md5をPureTclで計算するのになぜevalを多用するのかよくわからないな
evalでプレコンパイルして次回からはより速くなるようにする処理のところが
8.5では相対的にオーバーヘッドが大きくなったのかもしれないな
179:デフォルトの名無しさん
08/02/09 21:05:44
うpまだ?暇すぎて死にそう
180:デフォルトの名無しさん
08/02/09 22:46:28
>>176
URLリンク(reddog.s35.xrea.com)
ここを見た感じではevalが遅くなってるってことは
なさげに見えるけどなあ・・・。なんだろう。
181:デフォルトの名無しさん
08/02/09 23:51:09
>>177,179
md5を計算する手製proc
リストはここに置いておきます。
URLリンク(home.netyou.jp)
tcl ver8.4迄は正常に動作しver8.5でとち狂った。
ver8.2で動作させるとrfc1321の例題と同じ結果が得られることは確認すみ。
182:デフォルトの名無しさん
08/02/10 05:19:39
できた!たしかに8.5だと3倍くらい遅くなってた。たぶん変数を
二重に展開してexprとevalのコンボで最適化が効かなくなって
しまったと推測。
直したのは基本的にそこを素直にprocにしただけ。
8.4では4倍、8.5では12倍高速化した。あと、applyを使った
ものも書いてみたけど、procの方が速かった。
URLリンク(chun.s11.xrea.com)
ていうか、ひょっとして一つのprocで完結させたかったのかな。
それならapplyだ!
183:デフォルトの名無しさん
08/02/10 08:03:16
VineLinux4.2とActiveTcl8.5の環境でtktreectrlをソースからビルドしたいんだけど、
makeでつまづいてしまうんだが。
$tar xzf tktreectrl-2.2.3.tar.gz
$cd tktreectrl-2.2.3
$./configure --prefix=/opt/ActiveTcl-8.5 --enable-threads
$make
うだうだ
generic/tkTreeColumn.c:13 から include されたファイル中:
generic/tkTreeCtrl.h:13:20: tkPort.h: そのようなファイルやディレクトリはありません
generic/tkTreeCtrl.h:14:21: default.h: そのようなファイルやディレクトリはありません
generic/tkTreeCtrl.h:15:20: tclInt.h: そのようなファイルやディレクトリはありません
generic/tkTreeCtrl.h:16:19: tkInt.h: そのようなファイルやディレクトリはありません
うだうだ
tkPort.hってなんぞ?
/opt/ActiveTcl-8.5/include にそんなヘッダ入ってないんだけど・・・
184:本田
08/02/10 09:05:22
>>183
URLリンク(sourceforge.net)
からtcl8.5とtk8.5のソースコードをgetしろ。
185:デフォルトの名無しさん
08/02/10 09:16:09
>>184
ActiveTclを使わずにtckもtkも自分でソースからビルドしたらtktreectrlも上手く入ってくれた
ありがと
186:デフォルトの名無しさん
08/02/10 14:19:14
exprを多用したTclプログラムを高速化するにはとにかくexprの引数全体を { } で囲むってことを覚えておくといい。
式のコンパイル結果をキャッシュしてくれるようになるので本当にこれだけでだいぶ高速化する。
181のコードだとさらにexprコマンドを変数にいれてevalとかしちゃってるんでそこもどうにかしなきゃだけど
187:デフォルトの名無しさん
08/02/10 14:23:36
あー182の改訂版だとそういうところばっちり抑えてるね。余計なコメントだったか
188:デフォルトの名無しさん
08/02/10 22:14:14
184 09:05:22 >>185 09:16:09 僅か10分でソースコードをgetして確認まで完了。天晴れ!
189:デフォルトの名無しさん
08/02/10 22:31:43
>>188
まぁ俺様のスパコンなら余裕よ
じゃなくて、同じ事考えててソースから入れたら上手く行って「ヤッター」って書き込もうとしたらレスが付いてたの。
そんだけ。
190:本田
08/02/11 12:39:59
Welcome to the Tcl Developer Xchange!
URLリンク(www.tcl.tk)
Latest Software Releases
Tcl/Tk 8.5.1 Feb 5, 2008
Tcl/Tk 8.4.18 Feb 8, 2008
ActiveTcl 8.5.1.0 Feb, 2008
191:デフォルトの名無しさん
08/02/15 19:14:58
181>どうやら8.5版ではevalの処理が今一歩か。
evalはtclのインタープレタ(解釈実行)機能を利用する窓口なのでevalを封印する様では暫く8.4版に留まって様子を見るのも有力な選択肢かもしれない。
192:デフォルトの名無しさん
08/02/15 23:04:55
俺は8.4の頃からバイトコンパイルの邪魔になるので
evalは封印してきたわけだが・・・。
193:デフォルトの名無しさん
08/02/15 23:09:55
そういえば8.5で{*}が追加されたけどこれもeval使うよりは速いのかなー。
194:デフォルトの名無しさん
08/02/16 07:42:19
>192 :バイトコンパイルの邪魔になるのでevalは封印・・・。
→eval命令のコンパイルで何か支障があるのですか?
195:デフォルトの名無しさん
08/02/16 16:20:43
すみません。教えてください。
set a 3
set b {$a + 2}
expr $b*4
これが 20 でなく 11 になる理由は分かりました。しかし、次のような C 言語のソースをそのまま Tcl に直すとどうなるのですか?
int a = 3;
int b = a + 2;
int c = b * 4;
196:デフォルトの名無しさん
08/02/16 18:05:43
set a 3
set b [expr $a + 2]
set c [expr $b * 4]
197:デフォルトの名無しさん
08/02/16 21:40:46
なるほど。ありがとうございました。
198:デフォルトの名無しさん
08/02/22 21:40:37
書籍の類が姿を消して久しいが今日丸善本店に立寄るとEffective Tcl/Tkが書棚にあった。手にとって奥付を見ると「1999年8月1日初版発行」になっている!?今年は平成廿年。
199:本田
08/02/23 07:19:41
>>198
>Effective Tcl/Tk Library
URLリンク(sourceforge.net)
>Souce code from the book "Effective Tcl/Tk Programming"
200:デフォルトの名無しさん
08/02/28 23:15:28
三浦カズヨシ逮捕されたな
関係ないけど
201:デフォルトの名無しさん
08/02/29 00:01:03
美しいクンニ日本
今日本のクンニが乱れている!!
URLリンク(www.youtube.com)
202:デフォルトの名無しさん
08/02/29 11:17:41
wish83 hoge.tcl
とかでソースを実行するときにエラーがあると,ダイアログが出てOKボタンを押さないと次に進まなくなるけど,
これを抑制する方法はない?
203:デフォルトの名無しさん
08/02/29 23:15:30
普通に考えて例えばファイルオープンでしくじったら
読み取りの次の処理も失敗するだろ。止まるのが
普通なのではないだろうか。エラーを「抑制」するとは
この場合はどういう処理を期待してるのだろうか。
204:デフォルトの名無しさん
08/03/01 11:24:06
まあcatchしてエラー処理をすればよいのではないかな。
205:202
08/03/01 11:28:23
>>203
ダイアログを出さずに落っこちてほしいのです.
バッチ処理でデータを自動的に次々処理しているときに,ダイアログが出てそこで止まってしまうと,
オペレータが常時監視してOKボタンを押さなくてはいけない.
そうではなくて,エラーが出たらそのまま落ちて,次のデータに処理が移るようにしたい.
206:デフォルトの名無しさん
08/03/01 11:29:12
余談だけど前にどっかの英語のブログでプログラミング関連のフォーラムのスクリーンキャプチャ画像があって、
PHP のフォーラムと Python のフォーラムの最新の質問がそれぞれ
How to hide error messages? と How to handle exceptions? だったっていうのが面白かった。
207:202
08/03/01 11:30:59
>>204
確かにそうですね.ありがとうございます.
208:デフォルトの名無しさん
08/03/01 11:31:07
>>205
wishじゃなくtclshを使うのではどうか?
209:202
08/03/01 11:44:18
>>208
それが,処理自体はバッチ的なんだが,過去の経緯を引きずっている関係から,
部分的にGUIパッケージを使っているんですよね….
どういう方法をとるにしろ,プログラムにある程度の修正を加えるしかなさそうですね.
210:デフォルトの名無しさん
08/03/01 11:59:26
んー、冒頭に package require Tk ってつければいいだけでは?
というかバッチの中で呼ぶのだったら wish だと同期的にならないのでいろいろ不都合じゃないの。
Tclの中でのエラー処理の必要がなくて落っこちればそれでいいっていう前提で話してるけど。
211:デフォルトの名無しさん
08/03/01 12:12:15
>>205
なんだそういうことか。それならbgerrorでエラー処理を変えればいい。
でも、ていうか8.3ってbgerrorあったっけ。昔過ぎて忘れた。
proc bgerror {message} {
exit 1
}
pack [button .b -text GENERROR -width 15]
.b configure -command {
read $notexists
}
212:デフォルトの名無しさん
08/03/07 10:24:47
(・∀・)チックルチーコ! チックルチーコ! ラッキーペア!
tcl tcl tcl tcl tcl tcl チャチャチャ
二人は双子♪ 似てない双子♪
213:本田
08/03/08 08:39:49
>>166
Perl/Tk Tools
URLリンク(ptktools.sourceforge.net)
214:本田
08/03/08 08:44:33
ActiveTcl 8.4.18.0
URLリンク(www.activestate.com)
215:デフォルトの名無しさん
08/03/08 08:46:19
PowerShellから使えんのかなぁ
216:本田
08/03/08 09:15:21
>>215
tcom
URLリンク(wiki.tcl.tk)
217:本田
08/03/08 09:32:54
>>216
COM Object Implementation in Tcl
URLリンク(www.vex.net)
URLリンク(www.vex.net)
218:本田
08/03/08 09:35:20
>>217
>COMプログラマの解説書
>Crispin Goswell
>Microsoft Office Product Unit
>1995年 春
>1995年9月13日改訂
URLリンク(msdn.microsoft.com)
>抄録
>この解説書は、
>Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、
>効果的に使用する方法を説明しています。
>例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。
>プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。
>C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは
>Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。
>COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、
>Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。
>第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。
>この解説書ではInside OLEとCOM Specificationにある情報を、
>COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
219:デフォルトの名無しさん
08/03/08 10:58:39
Tcl使ってる人はLISPも使ってることが多いんでしょうか
220:本田
08/03/08 11:22:01
>>219
特別関係は深くないと思う。
ただTKの方は、色々な言語から使える。
221:本田
08/03/08 11:24:10
LTK - The Lisp Toolkit
"The easy way to do Lisp GUI programming"
URLリンク(www.peter-herth.de)
>LTK is a Common Lisp binding for the Tk graphics toolkit.
> It does not require any Tk knowledge for its usage.
> As it is written in pure Lisp, it is highly portable.
222:デフォルトの名無しさん
08/03/08 11:29:39
DQN男の家族死ね DQN男の親死ね DQN男の友達死ね DQN男の親戚死ね
DQN男の家族死ね DQN男の親死ね DQN男の友達死ね DQN男の親戚死ね
DQN男の家族死ね DQN男の親死ね DQN男の友達死ね DQN男の親戚死ね
DQN男の家族死ね DQN男の親死ね DQN男の友達死ね DQN男の親戚死ね
223:デフォルトの名無しさん
08/03/08 12:43:06
Lisp使いでEmacs使いの人はTclに間違った偏見を持っていることがあるかも。
224:本田
08/03/08 13:03:45
>>223
なぜ Tcl を使うべきではないのか
URLリンク(www.os-omicron.org)
225:本田
08/03/08 13:10:51
>>224
Tcl7.x時代の話でTcl8.xにはもう当てはまらない議論。
226:デフォルトの名無しさん
08/03/08 13:35:14
URLリンク(www.geocities.jp)
227:本田
08/03/14 22:01:12
tBuild
URLリンク(sourceforge.net)
tBuild is a cross-platform Tcl/Tk extension that extends Tcl/Tk with the ability to compile
& link shared libraries of Tcl extensions written in C/C++.
tBuild currently supports all unix compilers & MS VC++ 5.x/6.x/7.0/7.1/.NET under windows.
No Mac supp
228:本田
08/03/16 01:19:13
Tcl9
URLリンク(sourceforge.net)
Tcl9 is an umbrella for all projects related to the improvement of the current Tcl language,
towards the hypothetical version 9 (current version is 8.5).
229:本田
08/04/02 18:18:34
>Tcl/Tk 8.5.2 Release Announcement
>March 28, 2008
URLリンク(www.tcl.tk)
230:デフォルトの名無しさん
08/04/03 15:17:36
-e 位使えるようにしてくれ
231:本田
08/04/06 12:46:05
>>229
>tcltk8.5.2-014-20080405.exe
URLリンク(sourceforge.net)
232:gth
08/04/06 14:25:37
アイム
出口
233:七つの海の
08/04/10 23:24:00
×テックルティーケー
○ティコティケェィーィエ
234:デフォルトの名無しさん
08/04/13 03:08:28
x86-32bit Linuxでは正常に動いてたプログラムをx86-64bit Linuxで
動かそうとしたらcannot execute binaryとなってダメなんですけど、
どうすればいいんですか?原因はなんなんですか?
中学生にも分かるように説明してくれませんか?
235:本田
08/04/14 06:00:48
>ActiveTcl 8.5.2.0 Apr, 2008
URLリンク(www.tcl.tk)
236:本田
08/04/14 06:02:18
>>234
サポートセンターに電話すべし。
237:デフォルトの名無しさん
08/04/16 04:48:20
>>234ですが自己解決しました。
libc6-i386というのをインストールしたら64ビットOSでも
動きました。でも、32ビットOSのときよりも動きが遅いです。
238:本田
08/04/22 08:24:49
URLリンク(snackamp.sourceforge.net)
>SnackAmp
URLリンク(sourceforge.net)
>SnackAmp is a powerful multi-platform audio music (mp3, ogg ,wav, streams ...) player and organizer for large music collections.
>Manage your entire collection, including ID3 tagging and auto-playlisting. Integrated web server for remote control/streaming
239:デフォルトの名無しさん
08/05/02 15:58:13
ファイルから読み込んだ文字列中に"があるとうまく処理ができません。
たとえば、中身が
He said "I am
a boy"
のようなfileに対して
set ch [open "file"]
while {[gets $ch line] >= 0} {
puts [lindex $line 0]
}
を実行すると
unmatched open quote in list
while executing
"lindex $line 0"
となって止ってしまいます。
(mingw のtclsh84 )
このような"の入った文字列を処理するにはどうしたらよいのでしょうか?
240:デフォルトの名無しさん
08/05/02 20:11:53
クォートをエスケすりゃいんじゃね
gets $ch line
regsub -all \" $line \\" buf
puts [lindex $buf 0]
241:239
08/05/02 20:56:37
自己解決…って>>240さんの書かれた通りです。
あ、自分のは -all 忘れてましたわ。
ありがとうございます。
ちなみに、\\"で動くのですが、それだとemacsの色付けが異常になるので\\\"にしました。
242:デフォルトの名無しさん
08/05/05 18:25:21
使い勝手悪い言語だなあ。
243:デフォルトの名無しさん
08/05/06 10:44:47
Active Tcl ver.8.4.19に改版されている。
ver.8.4.17以降2ヶ月毎に改版されている。随分頻繁に改版しているけど、どこが換わっているのやら。
244:デフォルトの名無しさん
08/05/08 16:18:48
>>242
regularExpressionの速さはピカ一ですが
245:デフォルトの名無しさん
08/05/08 20:01:20
そうなの?
246:デフォルトの名無しさん
08/05/09 04:16:30
コーディングにかかる時間とか、バグのとりやすさのほうが重要だろ。
この観点から見るとtclひどすぎ。
正規表現使う構文にしてもすっきりしてないし。
247:デフォルトの名無しさん
08/05/09 12:00:11
わかったからすきなの使いなよ。
248:デフォルトの名無しさん
08/05/09 12:42:24
まさに正論
249:デフォルトの名無しさん
08/05/14 08:49:38
例に Perl/Tk 使ってみ。
Tcl ってよー出来てるって思えるから。
250:デフォルトの名無しさん
08/05/14 13:17:13
Tkを使う為の言語としては最強だよな。
他がちょっと弱いけど。
251:デフォルトの名無しさん
08/05/14 13:44:24
Cと組み合わせれば良いじゃん。
252:デフォルトの名無しさん
08/05/15 02:02:59
恥を忍んで質問させて下さい。
Win版のActiveTclのExpectは、sendの-breakが無いので、
一旦openしてfconfigureでbreakするのを試みてます。
set fd [open "COM1:" RDWR]
fconfigure $fd -ttycontrol {BREAK 1}
exp_sleep 2
fconfigure $fd -ttycontrol {BREAK 0}
exp_spawn -open $fd
でも、最後のexp_spawnがうまくいかないです。何故でしょう?
253:デフォルトの名無しさん
08/05/17 04:37:43
239みたいな例に対応できる汎用的方法がよく分からない。
'"'だけでなく'{'とか'}'とかも気をつける必要がある気がするんだけど。
tcl faq list eval とかで検索してみたけど結局どうすれば。
254:デフォルトの名無しさん
08/05/18 17:33:48
複数行にわたって書いているリストの中で
コメントをなんとか書けないものかなあ
255:本田
08/05/22 06:02:40
>exp_spawn failed on Windows 2003 with DEP(DataExecutionPrevention)
URLリンク(lists.activestate.com)
256:デフォルトの名無しさん
08/05/23 08:27:47
tclshでプロンプト(PS1)の設定は出来ますか?
257:デフォルトの名無しさん
08/05/23 21:06:59
こうじゃね?
たとえば、
set tcl_prompt1 {puts -nonewline [info hostname]@[pwd]> }
で、ラインコンティニュー用は tcl_prompt2に設定
set tcl_prompt2 {puts -nonewline continue?> }
258:デフォルトの名無しさん
08/05/24 00:50:15
>>257
なんやこれ。こんなんできたのか。長年使ってるけどはじめて知ったわ
259:デフォルトの名無しさん
08/05/24 01:27:29
>>257
出来た!
ありがとうございます
260:デフォルトの名無しさん
08/05/25 04:51:53
aliasの設定なんか無理かな?
~/.tclshに ls color=auto を入れたいんだけど
261:本田
08/05/25 06:00:16
>C++/Tcl
URLリンク(cpptcl.sourceforge.net)
>A C++ library for interoperability between C++ and Tcl
>C++/Tk
URLリンク(cpptk.sourceforge.net)
>A complete C++ interface to the Tk GUI toolkit
262:デフォルトの名無しさん
08/05/29 20:12:22
Tcl/Tk 8.5でBLT-2.4z使えてる方はいらっしゃいますか?
パッチとか修正とか、かなり手を入れないと使えないのでしょうか。
263:デフォルトの名無しさん
08/06/02 21:39:25
>>239
ここにその議論がある。URLリンク(wiki.tcl.tk)
要するにsplitすればよい。ただし連続する空白文字に対する動作が意図と異なるかもしれない。
while {[gets $ch line] >= 0} {
puts [lindex [split $line] 0]
}
あるいは、
puts [join [split $line] |]
などに書き換えて様子を見よう。
>>262
Windows版の場合、tcl84.dllに直接リンクしてしまってるからどうにもならないよね。
Tcl8.3あたり以降のextension作成のガイドラインから外れた古い作りになっているんだろう。
実際何年も更新されてないようだし。
自前ビルドしてやるしか。
264:262
08/06/03 11:42:06
>>263
URLリンク(jos.decoster.googlepages.com)
を基に試してみました。
demosやexamplesの一部 (多く?) が失敗するけど、なんとなく使えそうです。
BLT-3.0で対応するのかなぁ。
265:デフォルトの名無しさん
08/06/14 18:22:11
URLリンク(reddog.s35.xrea.com)
これは試した?
266:262
08/06/16 16:43:53
後出しでごめんなさい。Linuxです。
Fedora 9で試してまして、そうこうしてるうちに、>>263の方法で対応したパッケージがリリースされました。
URLリンク(bugzilla.redhat.com)
で対処してくださったようです。
267:デフォルトの名無しさん
08/06/20 19:54:08
tk でコンボボックスの幅を指定するにはどうすればいいでしょうか?
また、できれば選択した文字列が表示されるテキストボックス部分を
複数行表示にしたいのですが、可能でしょうか?
268:デフォルトの名無しさん
08/06/20 21:03:00
>>tk でコンボボックス
tile拡張のttk::comboboxのやつか?
ttk::combobox .cb -width 100 とかでいけんじゃね
>>複数行表示にしたいのですが、可能でしょうか?
不可能じゃね
269:デフォルトの名無しさん
08/06/27 03:20:15
質問があります。
set a hoge
set b a
set c b
とやって、cからたどってhogeに辿り着くには
どうすればいいのでしょうか。
$$$c とか $[$[$c]] とかいろいろやってみたのですが
できません……。
270:デフォルトの名無しさん
08/06/27 22:53:22
set a hoge
set b a
set c b
proc aho foo {
upvar $foo bar
return $var
}
puts [aho [aho $c]]
271:デフォルトの名無しさん
08/06/27 23:22:33
>>269
puts [set [set $c]]
>>267
2行は無理。BWidgetsのコンボを改造すればできるかも
272:デフォルトの名無しさん
08/06/28 00:44:17
>>271
へ〜、setって変数の参照にも使えるんだ。 勉強になりますた。
273:デフォルトの名無しさん
08/06/28 03:31:47
>>263
> ただし連続する空白文字に対する動作が意図と異なるかもしれない。
この制約がどうにも辛いです。
連続した空白があってもそれをただ一つの区切りとみなしつつ、
安全にファイルなどから読み込んだ文字列を処理するには
どうしたらいいのだろうか。
274:269
08/06/28 04:50:38
>>270
>>271
ありがとうございます。
275:デフォルトの名無しさん
08/06/28 06:01:58
>>273
そんなの教わったregsub使えよ
while {[gets $ch line] >= 0} {
puts [lindex [split $line [regsub -all -- {\s+} $line { }]] 0]
}
276:デフォルトの名無しさん
08/06/28 12:50:19
>>273
set line {He said "I am}
foreach word [string map {\" \\"} $line] {
puts $word
}
277:デフォルトの名無しさん
08/06/28 14:34:54
>>276
'{' inside string
278:デフォルトの名無しさん
08/06/28 17:20:38
文字列の中に"や{がある事を気にする必要がある時と
必要がない時の条件がよく分からん。。。
あと、ファイルから読み込んだ行を一律regsubしてしまって
常に構わないのかどうかも。。。
279:デフォルトの名無しさん
08/06/28 21:56:13
>>278
文字列をリストに自動変換してるところは気にしろ。文字列をforeachしたり
リスト系のコマンドに直接文字列を渡したりしてるところは注意だ。
>>276
set line "He said \"I am \{ a boy \}"
foreach word [string map {\" \\\" \{ \\\{ \} \\\}} $line] {
puts $word
}
280:デフォルトの名無しさん
08/06/28 23:10:12
> \} \\\}
これは必要? あってもなくても同じではないの?
281:本田
08/07/01 06:46:34
>Tcl/Tk 8.5.3 June 30, 2008
>Tcl/Tk 8.6a1 June 25, 2008
>Tcl/Tk 8.4.19 Apr 18, 2008
URLリンク(www.tcl.tk)
282:263
08/07/02 07:53:23
>>273
そもそもの話をしてもいいだろうか。
こんなコードは試しましたか?
set lines {He said "I am
a boy"}
set i 0
foreach l $lines {
puts $i:$l
incr i
}
Tclのlist「形式」は平易ながらバイナリデータまで扱える立派な「データ構造」なので、
まともに実装しようとすればTclが最初から持ってるパーサーを実装しなおすようなことになるよ。
平易ではあるがあまり(書いたソフトの)ユーザーには触ってもらいたくないデータ形式のような気がする。
コメントも使えないしね。自分自身で読み書き保存するためにはいいけど、
ユーザーに触らせるならJSONやYAMLなどのより一般的な形式がいいだろうね。
今ならtcllibのCVS HEADにライブラリが置かれてるよ。
283:239
08/07/02 09:03:58
なんか、今頃また盛り上がってるが・・・
>>282
それじゃ根本的に違うんだよね〜
getsで一行ごとにテキストファイルから読んでるの文字列に「"」があるのがミソなんで
set lines {He said "I am}
を処理することになるんですよ。
284:デフォルトの名無しさん
08/07/02 19:51:00
8.5から文字列をリストに変換できるかどうかチェックする
string is list $strが追加されてんぞ。
285:デフォルトの名無しさん
08/07/03 00:00:27
info completeで失敗したら、さらに1行読み込んでappendすりゃいいだけだろ
そもそもデータ自体が1行ずつ処理されるように書かれていないのになぜ、1行ずつ
処理したがるのか
286:デフォルトの名無しさん
08/07/03 01:29:08
ファイルの文書が、必ずしも""の対応関係があっている保障はないわけだが。
287:デフォルトの名無しさん
08/07/03 01:43:11
たしかにそういうこともあるな
flex/bisonでやるか PureTclでやるならfickle/taccle
288:デフォルトの名無しさん
08/07/04 11:09:03
canvasにarcなどを1000個くらい書くと激重でどうしようもありません。
自分の描画ルーチンが重いのではなく、Tkがcanvasをリフレッシュするのが激重です。
描画したアイテムを選択して移動とかするつもりはなく、単に絵が表示されればいいのですが…
こんな場合は、image photoに直接力技で図形を書いていくしかないですかね。
289:デフォルトの名無しさん
08/07/05 12:36:31
Tkのキャンバスウィジェット並みの機能ってほかのGUIフレームワークにないですかね。
書いた絵をドラッグできるとかそういう系。
290:本田
08/07/06 13:21:30
>>289
Zinc Is Not Canvas!
URLリンク(www.tkzinc.org)
OpenGLが、速い環境が無いと、遅すぎてかなわん。
291:デフォルトの名無しさん
08/07/07 21:37:10
Zincもええが、tkpathの方がシンプルでとっつきやすいよ
292:デフォルトの名無しさん
08/07/08 00:37:16
tkpath使ったら早くなるかとおもったけど全然早くならなかった・・・
293:デフォルトの名無しさん
08/07/09 07:59:32
>>288
>>292
1000を超える描画単位(図形やウィジェットなど)をリアルタイムで取り扱うことはスクリプト言語系のツールキットでは想定されてないと思う。
素直にネイティブコードで動く言語で実装したほうが早いんじゃない? 描画結果のキャッシュでもしつつ。
294:デフォルトの名無しさん
08/07/09 20:18:40
いやまだ手はある。Tcl3DでOpenGLで直接描画すれば・・・!
295:デフォルトの名無しさん
08/07/09 22:18:26
マルチスレッド拡張使ってる人いる?
296:デフォルトの名無しさん
08/07/09 23:06:43
ときどき使う。
297:デフォルトの名無しさん
08/07/09 23:44:51
>>296
非同期で走っている複数のスレッドから進行状況や終了などをメインのスレッドで
受け取るにはどういう手段があるんでしょう? tsv でスレッド内で状況をセットして
メインでpollするというぐらいしか思いつかないのですが。 メインの方で
vwaitしてスレッドのほうからthread::sendなんて出来ませんよね?
298:デフォルトの名無しさん
08/07/10 06:48:22
C++などで書いてるソフトにTclのインタプリタを組み込んでるやつはいないだろうか。
Tcl_Eval()でTclスクリプトを実行したときにそのスクリプトにエラーが含まれていると、
エラーメッセージはResultの中に入ってる。
これをResultの代わりにエラー出力に出したいんだが、その方法がよくわからない。
やり方があるようなら教えてもらえないだろうか。
299:297
08/07/10 06:54:59
あ、だめだ。 これ以前にExpectがthread-safeで無くてスレッドからは使えないとか。
Expectを多用してるので諦めます。
URLリンク(community.activestate.com)
300:本田
08/07/10 07:54:03
stderr
URLリンク(wiki.tcl.tk)
stderr is one of the stdio output files opened
- applications and functions tend to use it for the output of error messages.
301:298
08/07/10 10:32:22
>>300
ご協力ありがとう。
読んでみたけどどうやらこれはTclインタプリタ側(Tclスクリプト側)から
外部コマンドを呼び出したときのstderrについて議論しているみたいで、この話とはちょっと違う。
Tcl_CreateInterp()でinterpを作った後、
Tcl_SetStdChannel(channel, TCL_STDOUT);
Tcl_SetStdChannel(channel, TCL_STDERR);
を呼び出すことでinterpが呼び出すputsコマンドによる標準出力、エラー出力をトラップできることは確認できている。
だがTcl_Eval()やその他のTcl変数を直接いじるAPIを呼び出したときの文法エラー、実行時エラーは出力されないみたいなんだ。
(で、Resultの中に入っている)
こいつを、他と同じようにトラップできればいいんだが……。
302:デフォルトの名無しさん
08/07/10 11:44:58
>>297
>>299
URLリンク(www.tcl.tk)
303:デフォルトの名無しさん
08/07/10 14:59:25
>>301
TCL_ERRORだったらResultを出力すればいいだけじゃね?
304:デフォルトの名無しさん
08/07/10 22:13:52
>>298
なんでそんなことそをする必要があるかもう少し詳しく書いた方がいいぞ。そうしないと、
>>303みたいにすりゃいいだろ思うんだが
if (Tcl_Eval(interp, script)!=TCL_OK) {
char str;int len;Tcl_Channel e=Tcl_GetStdChannel(TCL_STDERR);
str=Tcl_GetStringFromObj(Tcl_GetObjResult(interp), &len);
Tcl_Write(err,str,len);Tcl_Flush(interp,err);
}
305:304
08/07/10 22:23:39
あー、どうでもいいけど、Tcl_WriteObjつかうと、Tcl_GetObjResultから一発で済むわ。
306:本田
08/07/22 20:12:44
TkSTEP 0.3b3 (Tk 4.1)
NEXTSTEP(tm)-lookalike-wanabee-hack-kit for Tk
Alfredo K. Kojima
tkstep0.3b3.tar.gz
tkstep8.0.4-2.tar.gz
Alfredo Kojima
URLリンク(en.wikipedia.org)
Alfredo Kengi Kojima
URLリンク(si3.inf.ufrgs.br)
TkSTEPは、現在、開発がストップしてるけど、
windowmakerなど他の仕事で作者は有名なんだな。
307:本田
08/07/23 01:18:22
The Tcl IRCd
URLリンク(www.hping.org)
The Tcl IRCd is an IRC server written in the Tcl language.
The current version is not a complete implementation of the IRC protocol
but should interoperate well with most IRC clients, and allows to register,
change nick, create channels, talk on a public channel or in query and so on.
The program is small,
less than 500 lines of code, and was written in order to be very simple to modify/extend.
308:デフォルトの名無しさん
08/07/24 04:12:37
string hoge とかって具合に 任意の string * コマンド(?)を追加したりはできないでしょうか。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5496日前に更新/102 KB
担当:undef