●●●●TCL/TKなら俺に聞け 2●●●●
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2007/05/01(火) 14:52:44プロジェクト本拠地
http://tcl.sourceforge.net/
最新版ソースコード
ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/
The Tcler's Wiki
http://wiki.tcl.tk/
The comp.lang.tcl Newsgroup
http://groups.google.com/group/comp.lang.tcl/
ActiveTcl
http://www.activestate.com/products/activetcl/
【日本語サイト】
もっとTcl/Tk
http://www.interq.or.jp/japan/s-imai/tcltk/
Tcl/Tk Scripting Laboratory
http://www.geocities.jp/urano343/tcltk.html
Tcl/Tk Primer
http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/
Tcl 8.4.1 Manual Command Reference
http://www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm
CategoryTclTk - mynote
http://reddog.s35.xrea.com/wiki/CategoryTclTk.html
【前スレ】
●●●●TCL/TKなら俺に聞け●●●●
http://pc11.2ch.net/test/read.cgi/tech/1033628416/
0848デフォルトの名無しさん
2011/12/10(土) 13:17:19.43ありがとうございます
0849本田
2011/12/17(土) 12:06:21.27http://www.youtube.com/watch?v=hHFOFefE1YM
0850デフォルトの名無しさん
2011/12/24(土) 12:21:45.17wm withdrawで非表示にし、wm deiconifyで再表示させると、
最初に作られた位置に出現します。
(厳密に言うとそれよりちょっと右下)
Tkの仕様なのかウィンドウマネージャの仕様なのか、
消えた時の位置に再表示されるのが自然だと思うんですが。
それともやり方が間違ってるんだろうか?
環境:
Tk 8.4
Soralis 10
CDE 1.6.3
0851デフォルトの名無しさん
2012/01/03(火) 19:11:53.53さすがだねw
0852デフォルトの名無しさん
2012/01/22(日) 19:54:12.530853デフォルトの名無しさん
2012/01/22(日) 19:54:41.210855デフォルトの名無しさん
2012/02/01(水) 23:51:44.540856デフォルトの名無しさん
2012/02/02(木) 00:46:23.97だってTk8.4もう使ってないし、CDEも使ったこと無いし、
Sorarisの環境も無いし、ウィンドウマネージャーのせいな気がするから、
環境が無いと確認のしようがないし、
0857デフォルトの名無しさん
2012/02/04(土) 13:14:29.62ですよねぇ〜。
仕事のマシンで環境いじれないし、
Tcl/Tkなんて(自分以外)ほとんど使ってないからなぁー。
0858デフォルトの名無しさん
2012/02/13(月) 21:11:55.61することにもよると思いますが、bash,perl,ruby,pythonと比べると速さはどうなんでしょう?
プログラムミング未経験者の、素朴な疑問です。
0859デフォルトの名無しさん
2012/02/22(水) 11:52:16.55Windowsでは消えた場所に戻るからウィンドウマネージャの仕様だと思う。
無理やり戻すしかない。
namespace eval GeometryMemory {
variable geometry
array set geometry {}
}
proc GeometryMemory::install {t} {
bind $t <Unmap> {GeometryMemory::save %W}
bind $t <Map> {GeometryMemory::recover %W}
}
proc GeometryMemory::save {t} {
variable geometry
set geometry($t) [wm geometry $t]
}
proc GeometryMemory::recover {t} {
variable geometry
if {[info exists geometry($t)]} {
wm geometry $t $geometry($t)
array unset geometry $t
}
}
0860デフォルトの名無しさん
2012/02/22(水) 11:53:14.60proc GeometryMemory::test {t} {
toplevel $t
GeometryMemory::install $t
update
puts "0: [wm geometry $t]"
wm withdraw $t
update
puts "1: [wm geometry $t]"
wm geometry $t +0+0
update
puts "2: [wm geometry $t]"
wm deiconify $t
update
puts "3: [wm geometry $t]"
}
GeometryMemory::test .t
console show
0861デフォルトの名無しさん
2012/02/22(水) 15:59:53.47Tclは最近のベンチマークサイトからは仲間外れにされてることが多いのでなかなか比較が見つからないけど、
比較的新しいサイトを見つけました。
http://goo.gl/6vXhj
ちょっと信じがたい感じもしますが、ここによると
Perl5 >> PHP > Ruby = Python2 >> Python3 >> Tcl
みたいな感じですね。Tcl 8.4.19ですけど、8.5では劇的な速度向上はなかったと思うので、
大して変わらんのに対し、Rubyは1.9でかなり速くなったらしいので、
最新版で比べるとさらに分が悪い感じがします。
bashは、、、汎用言語といえるのかなあ。
0862デフォルトの名無しさん
2012/02/22(水) 21:44:55.73レスもらえてうれしいです。そのうえ的確なサイト紹介です。
速さとか実行速度で検索していたのですが、ベンチマークという言葉が思い当たらず、適当なサイトが見つかりませんでした。
このサイトを見て驚いたのは、Perlの速さとJava・Luaの遅さですね。また、C++は最速と思っていました。
やはり、プログラムの内容でしょうか?
>Test code grows text string by adding another string in cycle until it grows up to 4 mb.
恥ずかしながら英語も全然ですのでよく分かりませんが、このベンチマークは文字列操作に該当するのでしょうか?
LL言語は文字列操作が得意と説明されていますよね。
bashも入れたのは、私が試したいのが次のような内容で、キーボードでの打鍵数を調べたいのです。
1 英文字で100万字の普通の文書を、#,=等の記号も含めてアルファベット順に何文字あるのかカウントする。
2 少し複雑で、日本語で100万文字をローマ字入力したと解釈させカウントする。
2のケースは条件があります。
a 小さな'つ'の扱いです。リナックスはrinukkusuとkが2つ、アップルはappuruとpが2つとします。
b んの扱い。例えば安心は、ansinnと'ん'のあとがナ行以外なら1文字ですみますが、それ以外の'ん'は2文字必要です。
c 最後にちゃ、ちゅ、ちょはcha,chu,choと、しゃ、しゅ、しょはsha,shu,shoとすることです。
0863862
2012/02/22(水) 21:45:49.12このスレに書き込んだのは、今からtcl/tkの勉強を始めようと思い、実際のところを知りたかったからです。
tclshがあってインタラクティブに使え、tkでGUIも簡単に扱える、そのうえクロスプラットフォームという魅力から、
tclが多言語に比べて遅くてもよかったのです。BSDで作ったフレームがWindowsで開くまではしました。
eltclshというものを見つけました。簡単なパスとコマンドの補完ができます。
tclshではプロンプトにpwdをだせますが(改行して2行表示はできない)、eltclshではプロンプトの修正が今の私にはできません。
eltclshを改良して意地でもログインシェルにしたいと思っています。
なぜ、tclshはログインシェルになりえなかったのでしょう。
長文ついでに>>861さんにもう一度感謝をのべよう。
tclの復権を願って、これで書き逃げさせていただきます。
0864デフォルトの名無しさん
2012/02/24(金) 00:13:15.78さんくすです。
おっしゃるとおり結局は,消す前に位置を保存して,
再表示した後で位置をもどすということで解決はしましたが,
なんかすっきりしなかったんですよね。
0865デフォルトの名無しさん
2012/02/24(金) 19:38:26.78ベンチマークの内容は"abcd____________"という文字列がひたすらつながった4MB+alphaの文字列が1つの変数に格納されるというものです。
なんかベンチマーク用にあえて死ぬほど非効率な方法で実装されていますが、同じ結果を得たいだけなら100ms以下でできる方法があるので
もうちょっと妥当なスクリプトだったらと思います。まあ、それでも負けてるのでしょうが。。。
862さんが作ろうとしているものはKAKASIという漢字->ローマ字変換プログラムを使って、いったんすべてASCIIにしてから処理するのがいいと思います。
http://goo.gl/EJYi
その上で、bashよりもTclを使うメリットは、連想配列があることです。
ただ、連想配列を持つ言語はほかにいくらでもあるので、PerlでもRubyでも好きな言語を使えばいいと思います。
またbashではできないということでもないです。
bashやzshが気に入られてるのは補完機能などが充実してるからではないですかね。
0866デフォルトの名無しさん
2012/02/24(金) 20:51:13.77するときに、ウィンドウの端あたりまでドラッグしていくとその先の方向へスクロールしてくれる
ようなのを実装したいんですが、参考になるコードスニペットないでしょうか?
0867デフォルトの名無しさん
2012/02/25(土) 00:04:22.73全米が泣いた。
リナックスの世界へ案内しよう
kakasi -Ha -Ja -Ka < test.txt
rinakkusunosekaiheannaishiyou
いろいろ試したのですが、案内のnが一つ少ないほかは完璧でした。
デフォルトがヘボン式なので、意図どおりです。感謝申し上げます。
打鍵数調べに速さは関係ありませんが、tclは8.4から最新バージョンだと、
20%くらい速くなっていそうですね。
http://news.mynavi.jp/news/2007/12/21/027/index.html
0868デフォルトの名無しさん
2012/02/28(火) 15:49:05.74パフォーマンスに関しては、一概には言えないんですよね。
http://wiki.tcl.tk/1611
http://wiki.tcl.tk/1616
総合成績では8.4が一番優秀だったりします。
私も速度は必要なくて、乗り換えの動機はライブラリが
8.4をサポートしなくなり始めてるということぐらいなんですが。
0869デフォルトの名無しさん
2012/02/28(火) 21:11:00.690870デフォルトの名無しさん
2012/02/28(火) 22:45:08.87- dictで連想配列の値渡最強
- dictはarrayより最速
- 無間桁計算で国家予算もらくらく計算
- clock addで日付計算最強
- clock formatで和暦がでるんだぜ!
- in 演算子がめちゃ楽最高
- switch正規表現比較が無敵
- lindex $list end-1とか書けちゃう柔軟さ
- {*}って知ってる?eval(失笑)ww
8.6最凶伝説(審議中)
- バイトコードエンジン再実装!速いのか!?
- try {} catch {} finally {} やっと使える!やっとか!
- coroutine って何に使うんですかあ?
- ooって結局どうなの。incr tcl ngの方がいいんじゃ・・・
-
0871デフォルトの名無しさん
2012/02/29(水) 16:09:13.53試験したTCLのソースをみると単純な文字列置換に"regsub"函数を使っている
、ここを定石とおりに"string match"函数に置き換えると何百倍も速くなった。
(我輩の旧式機械で源リストを実行するとトンでもないことになるが、置き換えるとまともになる。)
tclは8版から劇的に速くなったが、正規表現まわりは遅いまま。
その事情を知って意図的に弱点を突いてきたようだ。
0872861
2012/02/29(水) 17:54:06.76テストの趣旨を無視したバージョン
time {
set str "abcdefghefghefgh"
regsub -all {efgh} $str ____ str
set imax [expr {1024/[string length $str]*1024*4}]
set gstr [string repeat $str [expr {$imax+1000}]]
}
#=>4334 microseconds per iteration
少しは尊重する姿勢を見せてるバージョン
time {
set str "abcdefghefghefgh"
set imax [expr {1024/[string length $str]*1024*4}]
set gstr [string repeat $str [expr {$imax+1000}]]
regsub -all {efgh} $gstr ____ gstr
}
#=>114467 microseconds per iteration
5ms以下で終わる内容をあえてCore i5で10分以上かける方法でやるなんて
ばかばかしいよね。
0873871
2012/02/29(水) 23:28:59.71ユーザーは「yes except正規表現」と云っていた。
マニュアルも気合が入っていない項目と馬鹿丁寧な項目が入り混じっているし。
良くも悪くも、ちぐはぐが多いみたいだ。好き嫌いは激しかろう。
0874本田
2012/03/04(日) 23:41:21.56http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-html.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-linux-ix86.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-linux-x86_64.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-macosx-universal-threaded.dmg
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-win32-ix86-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/ActiveTcl8.4.19.6.295590-win32-x86_64-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/MD5SUM
http://downloads.activestate.com/ActiveTcl/releases/8.4.19.6/SHA256SUM
0875本田
2012/03/04(日) 23:44:36.35http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-html.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-linux-ix86-threaded.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-linux-x86_64-threaded.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-macosx10.5-i386-x86_64-threaded.dmg
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-win32-ix86-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ActiveTcl8.5.11.1.295590-win32-x86_64-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/MD5SUM
http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/SHA256SUM
0876本田
2012/03/04(日) 23:47:21.25http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-html.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-linux-ix86-threaded.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-linux-x86_64-threaded.tar.gz
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-macosx10.5-i386-x86_64-threaded.dmg
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-win32-ix86-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/ActiveTcl8.6.0.0b7.295590-win32-x86_64-threaded.exe
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/MD5SUM
http://downloads.activestate.com/ActiveTcl/releases/8.6.0.0b7/SHA256SUM
0877デフォルトの名無しさん
2012/03/07(水) 20:28:21.05いい方法はないでしょうか?
たとえば,プロシージャの中で,呼ばれた回数に依存した処理をするような場合,
下のように,global変数をインクリメントしたりしてますが,
他のglobal変数とぶつかったりしないか心配で,夜も眠れません。
namespaceだと大げさになりそうで。
proc foo {} {
global bar
if [info exists bar] {
incr bar
} else {
set bar 1
}
# 呼ばれた回数に依存する処理
}
0878デフォルトの名無しさん
2012/03/07(水) 22:30:41.71ttp://wiki.tcl.tk/1532 の下から二番目のスニペットとか。
0879本田
2012/03/07(水) 23:08:53.76singleton application
http://wiki.tcl.tk/1558
0880デフォルトの名無しさん
2012/03/09(金) 20:33:11.94>>879
おふた方ともありがとうございます。
やっぱりそんな簡単にはいかないですね。
それにしても反応早すぎw
0881デフォルトの名無しさん
2012/03/10(土) 11:07:27.49速すぎ。
0882デフォルトの名無しさん
2012/03/14(水) 18:44:21.69namespace大げさではけど、使いづらいとは思う。
もともと[incr Tcl]を取り込んだという割には、
名前空間付きの変数を作るitcl::scopeに相当するコマンドがなかったり、
プロシージャは見えるのに変数はvariableなしでは見れなかったりというのが使いづらい。
0883882
2012/03/14(水) 18:45:23.25o 大げさではないけど
0884デフォルトの名無しさん
2012/04/16(月) 17:32:28.780885デフォルトの名無しさん
2012/04/17(火) 11:23:18.41Tkの組み込みコマンドなのでスクリプトで改造もできない。
OSネイティブのきれいなダイアログじゃなくてよければ可能。
::tk::dialog::file:: open
tk_getOpenFileコマンドがないときに使われる古いダイアログみたい。
詳しくは以下参照。
$::tk_library/tk.tcl
$::tk_library/tkfbox.tcl
0886デフォルトの名無しさん
2012/04/17(火) 11:28:02.15http://wiki.tcl.tk/1060
0887デフォルトの名無しさん
2012/04/17(火) 21:42:15.41>>886
884です。貴重なコメントありがとうございます。
いずれにしてもかなり敷居が高そうですね。
取り敢えずは回避策を軸に考えます。
0888デフォルトの名無しさん
2012/04/26(木) 15:47:16.82全然敷居高くないよ。単に見た目が違うのを我慢してと言ってるだけ。
::tk::dialog::file:: open
というコマンドは、tk_getOpenFileと同じオプションを指定できるから
オプションは同じでコマンドだけ置き換えればおk
0889デフォルトの名無しさん
2012/05/01(火) 21:23:39.21Tcl8.6 のサブセットの Jim Tcl、本体は 8 ビットクリーンなのですが、内蔵ラインエディタが悪さしてシェル上での日本語入力を通しません。
それで、以下のようにしてその内蔵ラインエディタを外せばシェル上でも日本語を受け付けるようになります (CP932 でエスケープ文字と 2
バイト目が重なるようなものも、波かっこで挟んでエスケープ処理を抑制すれば入れられます)。
./configure --utf8 --disable-lineedit
utf8 のフォーマットに合う場合だけ utf8 として処理し、それ以外は単に 1 文字 8 ビットの文字列として処理します。Tcl8.6 の CVS 版に先
駆け、1 文字が 5 バイト長の utf8 文字列も取り扱えます。
なお、configure の処理実体が Tcl コードのため、そのままでのコンパイルには別の Tcl が必要です。
http://www.hecl.org/
Tcl 似の超コンパクトな言語 Hecl の方も、内蔵のラインエディタ jLine が日本語入力の邪魔をしているようですが、こちらは完全に組み込
まれているので、ソース自体の書き換えが必要になります (この理由で、jLine を外せば問題が解決するかどうかまでは試していません)。
0890デフォルトの名無しさん
2012/05/02(水) 23:32:02.540891デフォルトの名無しさん
2012/05/04(金) 10:40:49.18884です。ご教唆ありがとう。これで読むとショートカットは尻に".lnk"が付いているので区別できるようですね。
次はショートカット・ファイルからリンク先を取り出す方法に格闘します。
0892デフォルトの名無しさん
2012/05/05(土) 00:53:02.81ずいぶん難しいことしてるね。
Windowsのショートカットファイルはバイナリフォーマットだから自力で解析するよりtwapiを使うのがよいと思うよ。
http://goo.gl/9D9tI
0893デフォルトの名無しさん
2012/05/06(日) 16:30:46.62884です。何から何まで ありがとうございます。
尻が".lnk"のファイルは twapi::read_shortcut でホンモノの名前を白状させることができました。
お蔭様で、見掛けはしょぼく 中身が立派なスクリプトができました。
0894デフォルトの名無しさん
2012/05/12(土) 09:00:26.160895デフォルトの名無しさん
2012/05/18(金) 22:51:20.91tcl8.6 64bit用のtcom.dllは見つけたのですが・・・
↓
ttp://www.tin-pot.coco.mydisk.se/
tcomはソースがあるから何とかなりそうだけど、コンパイルやったことない。。。
twapiが代わりになるけど、こっちはExcelとかのオブジェクトを自動でに開放してくれない(´・ω・`)
どなたか手段わかりませんでしょうか
0896デフォルトの名無しさん
2012/05/19(土) 00:05:40.60Tclも64ビットライブラリで作り直したかったけど、
依存する奴全部揃えられなくて諦めた。
まあ64ビットにしないといけないアプリじゃなかったし。
で、tcomみたいなOFFICEアプリ?とかを操作するのに
64ビットじゃないといけないの?答えになってないが。
0897デフォルトの名無しさん
2012/05/19(土) 01:56:01.60まあ、office操作自体は確かに64bitにする必要がないんです
とあるソフトに32bit版と64bit版があって、
これにそれぞれ32bitと64bitのtclが組み込まれていているんですが、
自分が32bitで動くスクリプトを作った後に、
それをそのまま64bitに持っていったらdllの問題で組み込めなかった・・・
悔しい。
という話です。。
64bitのPCに32bitのそのソフトをインストールすれば動作自体はするのですが。
0898デフォルトの名無しさん
2012/05/25(金) 16:17:21.15[Ruby1.9.3]
+ str=str.gsub(/efgh/, "____")
gstr+=str;
- gstr=gstr.gsub(/efgh/, "____")
exec.tm.sec str.length
2sec 256kb
略)
395sec 3840kb
455sec 4096kb
[Tcl8.5.11]
+ regsub -all {efgh} $str ____ str
append gstr $str;
- regsub -all {efgh} $gstr ____ gstr
exec.tm.sec str.length
0sec 256kb
略)
0sec 3840kb
0sec 4096kb
0899デフォルトの名無しさん
2012/06/17(日) 21:24:30.09イマイチよくわかりません。通り一遍のことはぐぐれば
わかりますが、ちょっと凝ったことをしようとすると
どれを選んでどういったオプションを指定すればよいか
いつも迷ってしまいます。
何かこうスッキリわかりやすく解説してくれてるとこって
ないですかね。書物は、この手のものはたいてい
高額なのでちょっと手が出ないかな。。。
0900デフォルトの名無しさん
2012/06/18(月) 07:52:40.33僕も最初はあいまいなまま結果オーライで使ってたけど、Ruby/Tkの本が丁寧な解説で役立ったよ。
Rubyを256倍使うための本・界道編
http://goo.gl/YuZuF
0901デフォルトの名無しさん
2012/06/18(月) 09:01:28.10│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0902デフォルトの名無しさん
2012/06/18(月) 22:46:47.84256倍シリーズってまだあったんですね。
確かにあれはわかりやすいかも。
Rubyは盲点でした。
0903デフォルトの名無しさん
2012/06/19(火) 06:41:21.59pack, placeは後方互換用と思ってよい
…とtkdocsのサイトには書いてあった
http://www.tkdocs.com/tutorial/grid.html
0904デフォルトの名無しさん
2012/06/19(火) 19:32:26.30packはともかくplaceは置き換えられない部分があると思うなあ。
右上とか右下にくっついて動くロゴみたいなのはgridだとかえって難しい気がする。
gridのコマ割り考えるのも結構面倒。
0905デフォルトの名無しさん
2012/06/19(火) 22:00:48.41その中で個別にpack,place,grid使って配置した方が楽
0906デフォルトの名無しさん
2012/06/19(火) 22:03:34.92俺はTkでそういうのを作る機会がなかったので使ったことがないけど。
gridが全てにおいて万能というわけでもない。
0907デフォルトの名無しさん
2012/06/20(水) 14:33:31.82http://www.dumbo.ai.kyutech.ac.jp/~nagai/RubyTk/?%A4%BD%A4%CE%C2%BE%A4%CE%A5%B5%A5%F3%A5%D7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8
0908デフォルトの名無しさん
2012/06/22(金) 20:34:56.08どのようなやり方で出力させればよいでしょうか?
% tclsh
% set a "
test
test
"
% exec xterm -e "echo $a | w3m "
0909デフォルトの名無しさん
2012/06/30(土) 01:51:50.71意図がよくわからないんだけど、aの中身はホントはHTMLにして
ターミナルにw3mでレイアウト表示したいってことなら、
set ch [open |[list w3m -T text/html << $a] r]
puts [read $ch]; close $ch
一応w3mが整形したとおりに出力される。
0910デフォルトの名無しさん
2012/06/30(土) 01:59:12.62じゃあ、ちょっと違うかな。
リダイレクトのバリエーションでTclのチャネルを別プロセスに渡す方法とかあるみたいだから見てみたらいいかもしれない。
http://www.tcl.tk/man/tcl/tutorial/Tcl26.html
0911デフォルトの名無しさん
2012/07/01(日) 08:06:09.94909を見てて下を試しましたら、出力することができました。
% exec xterm -e "w3m << a
$a
"
ありがとうございました。
0912デフォルトの名無しさん
2012/07/28(土) 08:05:27.41July 27, 2012
0913デフォルトの名無しさん
2012/08/02(木) 19:12:11.95http://www.activestate.com/activetcl/downloads
0914本田
2012/08/02(木) 23:54:45.63ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-html.tar.gz
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-linux-ix86-threaded.tar.gz
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-linux-x86_64-threaded.tar.gz
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-macosx10.5-i386-x86_64-threaded.dmg
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-win32-ix86-threaded.exe
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/ActiveTcl8.5.12.0.296033-win32-x86_64-threaded.exe
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/MD5SUM
ttp://downloads.activestate.com/ActiveTcl/releases/8.5.12.0/SHA256SUM
0915デフォルトの名無しさん
2012/09/12(水) 07:36:14.950916デフォルトの名無しさん
2012/09/27(木) 00:17:38.23ってやると,色々配置したウィンドウを見た目変えずに一気に無効にできる。
destroy .f
で有効化。
だから何っていわれてもアレだけど。
0917デフォルトの名無しさん
2012/10/05(金) 20:50:57.35http://www.cqi.com.tw/coopermaa/tcl/20041107-01.doc
0918デフォルトの名無しさん
2012/10/05(金) 22:25:49.47確かにマニュアルにもframeの-bg ""の挙動は書いてあるけど、Windows7+Tk 8.5.11だとバグってるっぽい。
なぜか一旦destroyしてもう一回 frame作るとそれっぽい動きにはなる。最大化するとやっぱりいろいろおかしい。
Linuxだと問題ないのかな。
button .b1 -text hoge
button .b2 -text hoge
place .b1 -x 10 -y 10
place .b2 -x 50 -y 50
pack [frame .f -background ""] -fill both -expand 1
0919デフォルトの名無しさん
2012/11/20(火) 00:18:52.140920デフォルトの名無しさん
2012/11/26(月) 18:33:59.940921デフォルトの名無しさん
2012/12/08(土) 02:46:12.21何で政治的に負けちゃったんだろう
0922デフォルトの名無しさん
2012/12/15(土) 17:34:24.88expectというかtclで、設定ファイルを読みたい
bashのように、設定ファイルと見せかけて実は実行 でもいい
ロードかインクルードの方法ってありますか?
0923デフォルトの名無しさん
2012/12/15(土) 20:09:19.04sourceじゃダメなのか?
>>920
ActiveTcl来た
PTさんのtclkitも来た
0924デフォルトの名無しさん
2012/12/17(月) 13:28:41.57今年4月にPro Studioのサブスクリプションを自腹で1年延長してみたものの、
8.6に対応するときはメジャーアップデートでアップグレード対象外になる可能性に今頃気付いた。
そんなもったいないことしてる人は他にいないと思うが。。。
でもいいの。ActiveTclだけでもリリースし続けてくれてるだけで満足でございます。
0925デフォルトの名無しさん
2012/12/24(月) 22:46:13.420926デフォルトの名無しさん
2012/12/26(水) 21:31:39.970927デフォルトの名無しさん
2013/01/18(金) 03:10:56.990928デフォルトの名無しさん
2013/01/21(月) 19:38:03.190929デフォルトの名無しさん
2013/02/19(火) 07:16:05.65textに数千行読む時にprogressbarを更新したいけど、その他の再描画は無駄なので止めたいのです。
updateだと全体を再描画になります。
0930デフォルトの名無しさん
2013/02/21(木) 22:20:12.72textへの追加を1行ずつしないで、全部を一旦変数に入れて一発でinsertする、じゃダメなの?
0931デフォルトの名無しさん
2013/02/22(金) 21:07:25.94Scales and Progress Bars 4. Progress bar
はupdate なし
configure命令
0932デフォルトの名無しさん
2013/02/23(土) 21:44:59.02プロバー表示では現在値を強制表示させる為にupdate命令を使うのが定石だがこれが禁じ手になると結構難しいか。
@930番さんの様にまとめて一発表示
Aupdate命令間隔をを10秒置きとか極端に長くする
Bその他の部品はforgetオプション等で退避しておいて後で表示
C?
ところでTkのtext表示は普通はそんなに遅くはないが改行文字なしの長い行を表示させると異様に遅くなるみたい。
0933デフォルトの名無しさん
2013/03/06(水) 21:36:21.625行おきのアップデートにすると秒単位で高速化されました。
それでもプログレスバー表示しない場合の11.5倍時間がかかりました。
create_file: 483288 microseconds per iteration
gets_lines: 271409 microseconds per iteration
read_bulk: 252275 microseconds per iteration
test_full_update: 5123759 microseconds per iteration
test_skip_update: 3374500 microseconds per iteration
test_no_update: 291779 microseconds per iteration
test_bulk_insert: 285029 microseconds per iteration
0934デフォルトの名無しさん
2013/03/09(土) 03:48:33.455000行のファイルに5行おきにプログレスバーを更新するってのが...
0935デフォルトの名無しさん
2013/03/12(火) 17:51:41.39http://d.hatena.ne.jp/satosystems/20121228/1356655565
この速さはただの再帰もループになってる?
5桁とかになると1分以上かかって他に大きく離される
これはループにしても変わらないから多倍長ライブラリの性能かな
0936デフォルトの名無しさん
2013/03/12(火) 18:29:56.59fib 38は固まるわ
0937デフォルトの名無しさん
2013/03/12(火) 22:01:59.60私の中古機械で試してみた。式をまとめると約10倍速くなった
どうしてこんなに違うのか??
fib <39088169> term <80312600 microseconds per iteration>
proc fib {n} {
if {$n < 2} { return $n }
return [expr {[fib [expr {$n - 1}]] +[fib [expr {$n - 2}]]}]
}
fib <39088169> term <714145387 microseconds per iteration>
proc fib {n} {
if {$n < 2} { return $n }
set a [expr $n - 2]
set b [expr $n - 1]
set x [fib $a]
set y [fib $b]
return [expr $x + $y]
}
0938デフォルトの名無しさん
2013/03/15(金) 22:54:42.21exprの引数を{ }で囲むだけでだいぶ違うな
0939デフォルトの名無しさん
2013/03/15(金) 23:06:47.650940デフォルトの名無しさん
2013/03/15(金) 23:08:30.062回評価させないようにする。
0941デフォルトの名無しさん
2013/03/23(土) 22:06:55.05proc fib {n} {
if {$n < 2} { return $n }
return [expr {[fib [incr n -2]] +[fib [incr n ]]}]
}
fib <39088169> term <72891401 microseconds per iteration> でした。
935 引用のページからC++を複写してVisualC++Express2008(要するに無料ソフト)を使って実行してみた
fib44=701408733
fib45=1134903170
fib46=1836311903
fib47=-1323752223
fib48=512559680
tcl/tk(ver8.5.13)でfib47 は
fib <2971215073> term <1253824233 microseconds per iteration>
1254秒!!。鈍足で正確でした。なっとく
速度、精度、価格、安直さ、どれも一つの側面でしかなく、それらを総合的に評価して最適ソフトを選択することが肝要だと思う。
0942929
2013/03/24(日) 10:09:02.93progressbarはupdate idletasksで表示が更新されましたが、古いPCのWindowsXPでは5〜6秒程度updateしないと
メニュー部分が白くなって、その後はprogressbarも更新されなくなります。(update idletasksではダメ)
ということで、数秒おきにupdateしないとprogressbarが更新されません。
見た目を重視しているので無駄はあきらめることにしました。
0943デフォルトの名無しさん
2013/03/31(日) 08:08:41.45Tcl/Tk 8.4.20 Release Announcement
June 1, 2013
The Tcl Core Team is pleased to announce the 8.4.20 releases of the Tcl
dynamic language and the Tk toolkit. This is the twentieth and *FINAL*
patch release of Tcl/Tk 8.4. With this release, support for Tcl/Tk 8.4
comes to an end.
0944デフォルトの名無しさん
2013/04/03(水) 22:36:01.28April 3, 2013
0945デフォルトの名無しさん
2013/04/09(火) 21:46:20.56ActiveTcl 8.6.1.0とTclDevKit 6.0の登場が変えてくれることを願う。
0946デフォルトの名無しさん
2013/04/20(土) 09:26:13.990947デフォルトの名無しさん
2013/04/20(土) 09:26:55.27レス数が900を超えています。1000を超えると表示できなくなるよ。