[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/10 01:23 / Filesize : 102 KB / Number-of Response : 408
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

●●●●TCL/TKなら俺に聞け 2●●●●



1 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:52:44 ]
【英語サイト】
プロジェクト本拠地
tcl.sourceforge.net/
最新版ソースコード
ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/
The Tcler's Wiki
wiki.tcl.tk/
The comp.lang.tcl Newsgroup
groups.google.com/group/comp.lang.tcl/
ActiveTcl
www.activestate.com/products/activetcl/

【日本語サイト】
もっとTcl/Tk
www.interq.or.jp/japan/s-imai/tcltk/
Tcl/Tk Scripting Laboratory
www.geocities.jp/urano343/tcltk.html
Tcl/Tk Primer
mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/
Tcl 8.4.1 Manual Command Reference
www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm
CategoryTclTk - mynote
reddog.s35.xrea.com/wiki/CategoryTclTk.html

【前スレ】
●●●●TCL/TKなら俺に聞け●●●●
pc11.2ch.net/test/read.cgi/tech/1033628416/

339 名前:335 mailto:sage [2008/09/10(水) 10:06:33 ]
>>336
よくわかりません。

>>337
8.4使っているのですいません。
(ActiveTclの拡張が8.5では少なすぎるので)
Linux側で修正したりwindows側で修正したりしたのを日付で同期してるのでnkfやiconvは使いにくいですね。

>>338
凄いぜ。
putsでターミナルに出力する文字は化ける(konsoleのモードがutfだからしかたない)が、
widgetに出力する文字はきちんと出たよ〜。


340 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 20:07:26 ]
>>339
puts \u0055\u0069\u0063\u006f\u0064\u0065\u30ea\u30c6\u30e9\u30eb\u304f\u3089\u3044\u3050\u3050\u308c

341 名前:150.29.213.49 335 mailto:sage [2008/09/10(水) 21:37:28 ]
>>340
それはさすがに嫌杉でしょw

342 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:21:08 ]
>>339
putsは fconfigure stdout -encoding utf8 とかで化けなくなると思う。
でも、そこまで文字コード意識するならWindows<->Linuxでコピーする時に変換するほうが良いんじゃないの?

最近ActiveTcl8.5.4に乗り換えたけど一見拡張が入っていないように見えて、実は Tcl\lib\teapot\package\ 以下に
入っているように思った。

343 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:48:49 ]
>>341
この技はおぼえておけ。かならず役に立つときが来る。

344 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:20:20 ]
>>339
>>342
ActiveTcl8.5.x のインストーラの最初の画面で、

8.5は8.4とほとんど互換性があるから、
teacupを使うか8.4に上書きインストールしたら
たくさんのパッケージが手に入る。

というようなことが書いてました。
まだ8.5に乗り換える気はないんで、それだけ見てキャンセルしたけど。

345 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 02:39:50 ]
>>331
>>334
見つかるまでさかのぼるupvarを書いてみました。
upvarが上位の変数名とローカル変数名を並べて書くのに対し、
上位の変数名だけ並べて書いて同じ名前でリンクするようにしてます。

proc upvar2 {args} {
  set leveldepth [info level]
  foreach varname $args {
    for {set varlevel 2} {$varlevel <= $leveldepth} {incr varlevel} {
      if {[uplevel $varlevel info exists $varname]} {
        incr varlevel -1
        uplevel 1 upvar $varlevel $varname $varname
        break
      }
    }
  }
}


346 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:57:20 ]
windows mobile でeTcl使ってプログラム作ってたらメモリが足りなくて死んだorz
image photoって、-paletteで色数制限しても内部はフルカラーメモリ展開するのね。
やっぱ、WMで使うには富豪過ぎるか、Tclはorz

347 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 04:52:51 ]
内部イテレータ欲しい



348 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 13:15:30 ]
Tclを久しぶりに書いてみたら、firefox用のpluginが正常にインストールできません。
どういう状況なのでしょうか?ご存知でしたら教えてください。



349 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:39:46 ]
>>348
スネーク。状況をもう一度よく確認するんだ。

Tcl → バージョンが上がらない
Firefox → バージョンあがりまくり

放っておかれたアドオン(plugin)はどうなる?

350 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 07:20:41 ]
>>348
了解

メインバージョンが上がらないと更新されない訳ですね。

351 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 16:09:38 ]
300Kbyte程のTclTkを書いてみた。
っかZETってソフトのちょい変だけど。

ttp://carnageez.web.fc2.com/catdir/cat.html


352 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:10:52 ]
10秒見ただけだが、名前空間使わずによくこんだけ書いたな

353 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 05:18:31 ]
>>352
名前空間って何?( ゚д゚)ポカーン

354 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 05:45:22 ]
>>353
www.tcl.tk/man/tcl8.3/TclCmd/namespace.htm

355 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 07:09:06 ]
>>354
ありがと。
へえーーなんちゃってオブジェクト化って感じなんだね。

356 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 09:51:35 ]
Tcl 8.5からapplyコマンドでラムダ式とかが使えるらしいんだけど、
なんか入門的な情報ない?


357 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 16:24:05 ]
set lis [another commend]
for e $lis { something $e }
とかやらずに、$lisに直接何かを作用して写像を得たり、
フィルタリングできるの?



358 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 22:49:17 ]
初心者すぎてすいません。
tclのproc関数の出力をtkのテキストに書き出すにはどのようにすれば
いいのでしょうか?
いまいちtclとtkの連携方法がわからず困っています。


359 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:01:41 ]
んと、こんなんやってる
set str "hogehoge"

f_text_update $str

proc f_text_update {win str}
if {![winfo exists $win]} {
text $win
grid $win -column 0 -row 0
}
$win delete 0.0 end
$win insert end $str
}

360 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:12:55 ]
んもしや回答を誤ったか?

f_text_update [f_proc_func]

proc f_proc_func {} {
return "hogehoge"
}

これでどうだ

361 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 06:25:56 ]
>>359-360
ありがとうございます。
試してみます!!

362 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 11:35:53 ]
>>356
この記事は読んだ?
wiki.tcl.tk/4884

363 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:30:13 ]
λx.λy.x(2)(3)
みたいなことをやろうとして、
apply {{x} {return [apply {{y} {return x}} 2]}} 3
てやっても
x
が返ってくる。
で、
apply {{x} {return [set [apply {{y} {return x}} 2]]}} 3
ってやれば3が帰ってくるが、setを使っている時点で2回目のapplyの戻り値が変数名であることを前提にしていて気持ち悪い。



364 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:38:54 ]
ツール組込みのtcl環境でもlambda使いたい

365 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 23:01:54 ]
>>363
こりゃーいったい何をやろうとしとんじゃ?return xで
文字列のxが返るのはあたりまえじゃないか

366 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 14:14:10 ]
>>365
単に$のつけ忘れじゃ?


ついでに質問。
{}内の変数は置換されないよね?
そうすると、applyの引数にとる関数にはその引数で宣言した変数しか出てこれない。
これだと、例えば「xを引数にとって、『引数yをとって、yとxとの和を求める関数』を返す関数」とかが表現できない気がするんだけど…
""だとyが束縛されてないし…無理矢理置換するしかない?

367 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 20:25:25 ]
答えると、Tclにはクロージャ無いねん。
だからxを置き換えるしかないんじゃないかなあ。

set func {x {return [list y [list expr $x + \$y]] }}
apply [apply $func 1] 2
3

こういうこと?



368 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 00:20:16 ]
>>365
λx.λy..x
=λx.x
でしょ。
こうならないってこと。

369 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 08:27:21 ]
>>368
> >>365
> λx.λy..x
> =λx.x
> でしょ。

そんなequalityを持つλ計算の体系は見たことが無い

370 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:42:02 ]
結局なんだったんだ。もう

371 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:04:27 ]
>>370
同感

372 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:11:42 ]
点が余計に入った
λ.x.(λy.x)は変換するとλx.xだろうと。

373 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:14:51 ]
>>372
お前が前提にしているλ計算の公理系を言え。
通常のβη変換ではλx.(λy.x) = λx.xは導出できない。

374 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 09:35:24 ]
Tcl and the Tk Toolkit, Rough Cuts, 2nd Edition
* By John K. Ousterhout, Ken Jones
www.informit.com/store/product.aspx?isbn=0321601750&rll=1

ついこの前プレンティスから出てる妙に読みにくいTcl本買った俺涙目

375 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:08:03 ]
日本語で良書なTcl本ってなにがあるかな

376 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 20:34:12 ]
ものすごいつまらんこと聞いていいっすか?

Tclって、pythonで言うところのinputとかraw_inputって無いの?

377 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:11:19 ]
gets



378 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:18:28 ]
>>376
pythonで言うところのinputって何をするものか書いたほうがアドバイスもらえると思うが?

379 名前:376 mailto:sage [2008/12/02(火) 20:46:30 ]
>>378
それもそうですね。失礼しました。自分は職業プログラマではな
いのであんまりうまく説明できそうにないですが。。
webで見つけた説明によれば、

raw_input関数
標準入力から1行読み込んで(末尾の改行をのぞいたものを)文字列に変換して返す。

>>> s = raw_input()
test
>>> s
'test'

とこんな感じです。上記はインタプリタでの動作です。
呼ばれると、ユーザの入力を待つモードになります。
ユーザが文字列を入力すると変数に文字列が代入されます。
input関数は数値入力用です。

380 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:56:09 ]
やっぱgetsでいいじゃん

tclsh>gets stdin s
test
tclsh>puts $s
test


381 名前:379 mailto:sage [2008/12/02(火) 23:32:57 ]
>>380
レスありがとうございます。

getsにはそんな風に書くんですね。
channelIdってのが何を指してるのかサッパリでした。。

明日会社に行ってまた試してみます。
たまーに仕事用ツール作成でスクリプト書くんですが、
諸事情あって今回はTclにで書いていて。。

382 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 00:53:01 ]
scan $str "%s,%s,%s,%s" a b c d
とかもあるよ。scanfみたいなの。
また正規表現を使った読み込みとか便利
set fp [open $fname]
gets $fp str
regexp {\[\s*\s*\]\s*(\w+)} $str d1 d2とかね

以下が改行取って読み込みとか
set fp [open $fname];gets $fp str
foreach i [split $str "\n"] {

}
以下とかするとバイナリファイルも開けるよ
set fp [open $fname]
fconfigure $fp -translation binary
binary scan [read $fp 1000] H* str


383 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:00:38 ]
binary scanとbinary formatの使い方をすぐ忘れちゃうのは秘密だ

384 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:04:45 ]
>>375
Tcl/Tkデスクトップリファレンスには超おせわになった。
あとEffective Tcl/Tk。この2冊はTcl/Tk修行時代の
10年位前にかなり読んだ。

385 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 21:58:58 ]
Tcl初心者です。すみません、教えて下さい。

ビルトインコマンドにラッパーをかける事は
できるのでしょうか。

例えば

proc wrapper {cmd} {
catch {eval {$cmd}} status
puts "$cmd , $status"
}
:
alias expr {wrapper expr}
:
expr {1+1} ;# wrapper {expr {1+1}} -> expr {1+1} ,0

的な感じです。

386 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:04:10 ]
>>385
これじゃ無限ループになるだろ。exprはrenameして新たにラッパーのexprを定義すれば?

387 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:04:55 ]
>312
>BrowseX for Windows使ってた人いない?

Hv3というtkhtmlベースのブラウザならある。
tkhtml.tcl.tk/hv3.html



388 名前:デフォルトの名無しさん [2008/12/19(金) 21:06:51 ]
Dr. OusterhoutがTclコアチームから抜ける。
groups.google.com/group/comp.lang.tcl/browse_thread/thread/99e2693293b3c945/e54399b0a7dd8ec1?show_docid=e54399b0a7dd8ec1&pli=1

389 名前:デフォルトの名無しさん [2008/12/22(月) 21:53:03 ]
プログラムから逃げてきたのに卒論で無理やりやらされてる
Cで作ったexeファイルをtcl/tkで作ったGUI上で実行したりできるの?

ていうかこんなことも分からない感じで死にそう・・・

390 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 23:27:50 ]
>>388
そしてその翌日itclのコア組み込みが決定したのであった・・・!

>>389
CでCUIのexe作って、Tcl/Tkでガワ作って、パイプで接続とか。
まあどんなことがやりたいかによる。CでDLL作って、それをTcl/Tk
から使うほうが楽かもしれない。

391 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 00:07:48 ]
>>389
unixだと楽だが、windowsだと面倒。

392 名前:デフォルトの名無しさん [2008/12/23(火) 11:28:21 ]
え、incr Tcl?
正直オブジェクト指向を入れるなら参照とガベコレの概念を入れる前提で
デザインしなおしたほうがいいのに・・・
(逆に言うとこの2つを入れればオブジェクト指向はこれまでどおり拡張でいいし)
オブジェクト手動開放とか今日日ありえないっすよ。

393 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:40:20 ]
>>391
んなこたーない。
execで実行するだけ。
so, dllも同じソースで簡単に作れるし(windowsはmingwのgcc使ってるけど)

394 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:53:07 ]
いやwindowsは苦労するよ。
pathや引数周りに落とし穴がいっぱいある。

MSが早くcygnusを買収してくれればいいのに。

395 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 20:02:39 ]
>>394
落とし穴ってなに

396 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:13:52 ]
path周りの避け方はマニュアルに書いてあるだろ。
で、なんでcygnusが出てくるんだ?
もはやTclはcygwinをサポートしてないぞ。
素直にActive TclをインストールしてCはMinGW使えばいい。

397 名前:デフォルトの名無しさん [2008/12/23(火) 23:38:12 ]
8.6b1きたあああああ!!!
try 〜 throwきたあああ!!!
zlibきたあああ!!!
ttk::spinboxきたあああ!!!
tk fontchooserきたああああ!!!
Canvasの回転文字きたああああ!!!
ttkのvistaテーマきたあああ!!!



398 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:23:24 ]
今M1だが、修論でtcl使うはめになってubuntuの起動から勉強してるところなんだけど、
tclでパラレルポートからの入力って使える?
その辺含んだお勧めの書籍なんかあれば知りたい。

399 名前:デフォルトの名無しさん [2009/01/06(火) 21:25:39 ]
wiki.tcl.tk/2816
まずは適当に検索してみればいいとおもうの。

400 名前:本田 [2009/01/08(木) 21:18:47 ]
AC3Dマニュアル
panda.ecs.cst.nihon-u.ac.jp/~hiroshi/ac3d/ac3dmanj.html
1998年11月6日更新 - AC3Dバージョン2以降に対応

AC3D
mail2.nara-edu.ac.jp/~asait/graphics/ac3d/ac3d.htm
>3 次元模型 (モデル) を作るためのソフトはモデラーと呼ばれています。
> AC3D はそのモデラーの一つで、随分人気があるようです。
> AC3D は今では商用ソフトになってしまいました。

Shareware Version.
locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip
古いけどTcl/Tkスクリプト使用して参考になる。

最新版。
www.inivis.com/

401 名前:本田 [2009/01/09(金) 21:21:13 ]
These are some sample files for the 3D modeller - AC3D
ftp://ftp.uni-duisburg.de/CAD/AC3D/acfiles.tgz

AC3D Manual(Updated 11th March 1999 - Covers AC3D Version 2 onwards)
ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.zip
ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.tgz

AC3D Manual Ver. 3.4.1
ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.pdf

locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip
に付属のGLU32.DLLとOPENGL32.DLLは、おそらくWindows95用でしょう。

Windows95以降に発売されたWindowsには、
GLU32.DLLとOPENGL32.DLLが付属してるとはずなので、
Windows95以降に発売されたWindowsをお使いの場合は、
AC3D v.2.0付属のGLU32.DLLとOPENGL32.DLLを削除したほうが、
AC3D v.2.0の安定性や速度が改善される可能性があります。

402 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:08:38 ]
すみません質問させて下さい。
以下のコードのように、プロシージャfooを作っておいて
複数のボタンをpackする作業をまとめたいと考えています。

proc foo {w msg} {
pack [button $w.$msg -text $msg -command {puts $msg}]
}

pack [frame .f]
foo .f "b1"
foo .f "b2"

ところがボタンを押してcommandを実行させると、
以下のエラーが出ます。
Error: can't read "msg": no such variable

ボタンを押したときにローカル変数msgを参照できていないということだと
思いますが、何か良い解決策はありませんか?
よろしくお願いします。

403 名前:402 mailto:sage [2009/01/13(火) 00:10:15 ]
使用環境を書き忘れました。
WindowsXPでActiveTcl8.5.4.0.286921-win32-ix86-threaded.exe
をインストールして使っています。

404 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:30:21 ]
-command "puts $msg"

405 名前:402 mailto:sage [2009/01/13(火) 00:56:06 ]
>>404
できました!
"と{との違いを調べてきます。
早速の回答ありがとうございます。

406 名前:デフォルトの名無しさん [2009/01/13(火) 12:59:47 ]
>>402
{}の違いがポイントではなく、-command で指定するコマンドが関数の外で実行されることがポイントなのです。
msg変数は関数fooのローカル変数なので、関数の外で実行されるボタンのコマンドからは参照できません。


407 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:28:04 ]
>>404 ではないですが、もう少し補足しておきます
set msg AAA; pack [button .b -text PushMe -command "puts $msg"]
としておいて、ボタン.bを押すと当然、AAAとコンソールに表示されます。
続けて、set msg BBBとしてボタン.bを押してみて下さい。
コンソールにAAAと表示されますね?
これはどういうことかというと、








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<102KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef