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


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

●●●●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/

262 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:12:22 ]
Tcl/Tk 8.5でBLT-2.4z使えてる方はいらっしゃいますか?

パッチとか修正とか、かなり手を入れないと使えないのでしょうか。

263 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:39:25 ]
>>239
ここにその議論がある。wiki.tcl.tk/2157
要するにsplitすればよい。ただし連続する空白文字に対する動作が意図と異なるかもしれない。
while {[gets $ch line] >= 0} {
puts [lindex [split $line] 0]
}

あるいは、
puts [join [split $line] |]
などに書き換えて様子を見よう。

>>262
Windows版の場合、tcl84.dllに直接リンクしてしまってるからどうにもならないよね。
Tcl8.3あたり以降のextension作成のガイドラインから外れた古い作りになっているんだろう。
実際何年も更新されてないようだし。
自前ビルドしてやるしか。

264 名前:262 mailto:sage [2008/06/03(火) 11:42:06 ]
>>263
jos.decoster.googlepages.com/bltfortk8.5.2
を基に試してみました。

demosやexamplesの一部 (多く?) が失敗するけど、なんとなく使えそうです。
BLT-3.0で対応するのかなぁ。

265 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:22:11 ]
reddog.s35.xrea.com/wiki/A%20Stub-enabled%20BLT2.4z%20for%20Windows.html
これは試した?

266 名前:262 mailto:sage [2008/06/16(月) 16:43:53 ]
後出しでごめんなさい。Linuxです。
Fedora 9で試してまして、そうこうしてるうちに、>>263の方法で対応したパッケージがリリースされました。

https://bugzilla.redhat.com/show_bug.cgi?id=446862
で対処してくださったようです。

267 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 19:54:08 ]
tk でコンボボックスの幅を指定するにはどうすればいいでしょうか?
また、できれば選択した文字列が表示されるテキストボックス部分を
複数行表示にしたいのですが、可能でしょうか?

268 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 21:03:00 ]
>>tk でコンボボックス
tile拡張のttk::comboboxのやつか?
ttk::combobox .cb -width 100 とかでいけんじゃね
>>複数行表示にしたいのですが、可能でしょうか?
不可能じゃね

269 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 03:20:15 ]
質問があります。

set a hoge
set b a
set c b

とやって、cからたどってhogeに辿り着くには
どうすればいいのでしょうか。
$$$c とか $[$[$c]] とかいろいろやってみたのですが
できません……。

270 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 23:22:33 ]
>>269
puts [set [set $c]]
>>267
2行は無理。BWidgetsのコンボを改造すればできるかも


272 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:44:17 ]
>>271
へ〜、setって変数の参照にも使えるんだ。 勉強になりますた。

273 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 03:31:47 ]
>>263
> ただし連続する空白文字に対する動作が意図と異なるかもしれない。

この制約がどうにも辛いです。
連続した空白があってもそれをただ一つの区切りとみなしつつ、
安全にファイルなどから読み込んだ文字列を処理するには
どうしたらいいのだろうか。

274 名前:269 mailto:sage [2008/06/28(土) 04:50:38 ]
>>270
>>271
ありがとうございます。

275 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 06:01:58 ]
>>273
そんなの教わったregsub使えよ
while {[gets $ch line] >= 0} {
puts [lindex [split $line [regsub -all -- {\s+} $line { }]] 0]
}

276 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:50:19 ]
>>273
set line {He said "I am}
foreach word [string map {\" \\"} $line] {
puts $word
}

277 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 14:34:54 ]
>>276
'{' inside string

278 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:20:38 ]
文字列の中に"や{がある事を気にする必要がある時と
必要がない時の条件がよく分からん。。。
あと、ファイルから読み込んだ行を一律regsubしてしまって
常に構わないのかどうかも。。。

279 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:56:13 ]
>>278
文字列をリストに自動変換してるところは気にしろ。文字列をforeachしたり
リスト系のコマンドに直接文字列を渡したりしてるところは注意だ。
>>276
set line "He said \"I am \{ a boy \}"
foreach word [string map {\" \\\" \{ \\\{ \} \\\}} $line] {
puts $word
}

280 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 23:10:12 ]
> \} \\\}
これは必要? あってもなくても同じではないの?



281 名前:本田 [2008/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
www.tcl.tk/

282 名前:263 mailto:sage [2008/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 mailto:sage [2008/07/02(水) 09:03:58 ]
なんか、今頃また盛り上がってるが・・・

>>282
それじゃ根本的に違うんだよね〜
getsで一行ごとにテキストファイルから読んでるの文字列に「"」があるのがミソなんで

set lines {He said "I am}

を処理することになるんですよ。


284 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 19:51:00 ]
8.5から文字列をリストに変換できるかどうかチェックする
string is list $strが追加されてんぞ。

285 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 00:00:27 ]
info completeで失敗したら、さらに1行読み込んでappendすりゃいいだけだろ
そもそもデータ自体が1行ずつ処理されるように書かれていないのになぜ、1行ずつ
処理したがるのか

286 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:29:08 ]
ファイルの文書が、必ずしも""の対応関係があっている保障はないわけだが。

287 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:43:11 ]
たしかにそういうこともあるな
flex/bisonでやるか PureTclでやるならfickle/taccle


288 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 11:09:03 ]
canvasにarcなどを1000個くらい書くと激重でどうしようもありません。
自分の描画ルーチンが重いのではなく、Tkがcanvasをリフレッシュするのが激重です。
描画したアイテムを選択して移動とかするつもりはなく、単に絵が表示されればいいのですが…
こんな場合は、image photoに直接力技で図形を書いていくしかないですかね。

289 名前:デフォルトの名無しさん [2008/07/05(土) 12:36:31 ]
Tkのキャンバスウィジェット並みの機能ってほかのGUIフレームワークにないですかね。
書いた絵をドラッグできるとかそういう系。

290 名前:本田 [2008/07/06(日) 13:21:30 ]
>>289
Zinc Is Not Canvas!
www.tkzinc.org/tkzinc/index.php

OpenGLが、速い環境が無いと、遅すぎてかなわん。



291 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 21:37:10 ]
Zincもええが、tkpathの方がシンプルでとっつきやすいよ

292 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 00:37:16 ]
tkpath使ったら早くなるかとおもったけど全然早くならなかった・・・


293 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 07:59:32 ]
>>288
>>292

1000を超える描画単位(図形やウィジェットなど)をリアルタイムで取り扱うことはスクリプト言語系のツールキットでは想定されてないと思う。
素直にネイティブコードで動く言語で実装したほうが早いんじゃない? 描画結果のキャッシュでもしつつ。

294 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:18:40 ]
いやまだ手はある。Tcl3DでOpenGLで直接描画すれば・・・!

295 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:18:26 ]
マルチスレッド拡張使ってる人いる?

296 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:06:43 ]
ときどき使う。

297 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:44:51 ]
>>296
非同期で走っている複数のスレッドから進行状況や終了などをメインのスレッドで
受け取るにはどういう手段があるんでしょう? tsv でスレッド内で状況をセットして
メインでpollするというぐらいしか思いつかないのですが。 メインの方で
vwaitしてスレッドのほうからthread::sendなんて出来ませんよね? 


298 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 06:48:22 ]
C++などで書いてるソフトにTclのインタプリタを組み込んでるやつはいないだろうか。
Tcl_Eval()でTclスクリプトを実行したときにそのスクリプトにエラーが含まれていると、
エラーメッセージはResultの中に入ってる。
これをResultの代わりにエラー出力に出したいんだが、その方法がよくわからない。
やり方があるようなら教えてもらえないだろうか。

299 名前:297 mailto:sage [2008/07/10(木) 06:54:59 ]
あ、だめだ。 これ以前にExpectがthread-safeで無くてスレッドからは使えないとか。 
Expectを多用してるので諦めます。

community.activestate.com/forum-topic/expect-tcl-threads

300 名前:本田 [2008/07/10(木) 07:54:03 ]
stderr
wiki.tcl.tk/2620
stderr is one of the stdio output files opened
- applications and functions tend to use it for the output of error messages.



301 名前:298 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 11:44:58 ]
>>297
>>299
www.tcl.tk/doc/howto/thread_model.html

303 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 14:59:25 ]
>>301
TCL_ERRORだったらResultを出力すればいいだけじゃね?

304 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/07/10(木) 22:23:39 ]
あー、どうでもいいけど、Tcl_WriteObjつかうと、Tcl_GetObjResultから一発で済むわ。

306 名前:本田 [2008/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
en.wikipedia.org/wiki/Alfredo_Kojima
Alfredo Kengi Kojima
si3.inf.ufrgs.br/informa/Edicao12/entr_ago00.htm

TkSTEPは、現在、開発がストップしてるけど、
windowmakerなど他の仕事で作者は有名なんだな。

307 名前:本田 [2008/07/23(水) 01:18:22 ]
The Tcl IRCd
www.hping.org/tclircd/
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 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 04:12:37 ]
string hoge とかって具合に 任意の string * コマンド(?)を追加したりはできないでしょうか。

309 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 20:37:58 ]
proc stringHello {} {puts "HELLO WORLD"}

set map [namespace ensemble configure string -map]
dict append map hello stringHello
namespace ensemble configure string -map $map

string hello


ただし8.5以上。

8.4のときはstringコマンドをtcl_stringなんかに名前を変えて
そのうえでそれのラッパーのstringを作ったりしてた。

310 名前:デフォルトの名無しさん [2008/07/24(木) 23:57:42 ]
>>269
>$$$c とか $[$[$c]] とか…
puts [subst $[subst $[subst $c]]]

遅レスだが…



311 名前:デフォルトの名無しさん [2008/07/27(日) 18:35:14 ]
>>269 & >>310
$$var (間接指定)について
psg.com/%7Ejoem/tcl/faq.html#DoubleIndirect
に丁寧な説明がある。
古い我家頁だが、今でもアクセス可能と思う。



312 名前:デフォルトの名無しさん [2008/07/29(火) 00:59:08 ]
BrowseX for Windows使ってた人いない?
いきなり消滅してて悲しい・・・

313 名前:デフォルトの名無しさん [2008/08/02(土) 08:48:51 ]
Active Tcl やっと8.5.3になった

314 名前:デフォルトの名無しさん [2008/08/05(火) 04:33:00 ]
tclコードをソース隠ぺいのため、バイナリ化または、
暗号化したいがどうすればよいでしょうか?

315 名前:デフォルトの名無しさん [2008/08/05(火) 21:26:28 ]
バイナリ化(exe化)ならここに色々ある。
home.netyou.jp/22/tanida/MazeOfProgram.htm
隠ぺいのためになるかは不明.


316 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 10:37:56 ]
comポートとかソケットをopenで開いてgetsした時、
相手が何も返してこないと、一生待ちつづけてしまうのですが、
タイムアウトさせたりする方法は無いですか?

317 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 07:07:15 ]
>>316
Tcllibは調べた?

318 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 08:05:26 ]
>>316
fconfigure -blocking
fileeventで非同期に処理するのが良いと思う


319 名前:デフォルトの名無しさん [2008/08/13(水) 20:58:56 ]
>>316この手のシークエンスを記述するためにafter ms命令が用意されている

320 名前:316 [2008/08/14(木) 09:50:55 ]
>>318
fileeventがまさに探していた機能です
サンクスコ

>>319
それは考えたけど、一度発行したgetsを取り消す術がないからダメポ



321 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 00:56:41 ]
foreach {o i } [regexp -all -inline {<item>(.*?)</item>} $read] {
のlsearchとかlreplaceとかで、ネストタグの抽出が簡単にできるのが良い。
perlより全然良い。日本語が問題なく使えるのが良い。簡単GUIも良い。
foreachの中のregexpが速ければもっと良い。なかなか最適化ができない。





322 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 01:10:16 ]
tclの正規表現は早いほうって聞いたけどなあ・・・

323 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 02:59:06 ]
Tclで書いたスクリプト自体はそれほど早く動作しないよね。
TclはJITに対応してるという記述がちらほら(wiki.tcl.tk含む)で見かけたので
ソースコードを調べたら、スクリプトを内部表現に書き換えるコンパイラはあっても
CPUのニーモニックに直接変換してる実装部分は見当たらなかった。

インタプリタ自体がやってることはそれほど複雑ではないので(ほとんどがコマンド自体の実装)
誰か実装してくれればいいなとは思うが、
googleのannualのフォーラムでの議題には特にあがっていないようだ。

324 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:13:12 ]
速くしたけりゃその部分だけCで書け
そもそも
コマンド 引数 引数 ...
しかなくて、構文などというものもない簡易言語に期待しすぎでしょ。


325 名前:デフォルトの名無しさん [2008/08/24(日) 22:12:31 ]
その理屈で言うと括弧しかなくて構文などというもののない簡易言語にも期待できないのか。
それはさておきTclでバイトコードコンパイルしてるってのだけで驚異的じゃない?
Tclって意味論的には素直に考えるとevalに満ち溢れたような代物でしょ。

326 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:18:54 ]
インタプリタ作ったり、DLLやsoを簡単にロードできたり、Cとの融合が十分考慮されてる言語なんだから、
処理速度を要求される部分はCで作った方がいいでしょ、マジで。

327 名前:デフォルトの名無しさん [2008/08/25(月) 01:11:39 ]
別にそこには反論してないよ。
それはTclのシンタクスとは直接の関係はないし、Tclが簡易言語とも思わないけど。

328 名前:デフォルトの名無しさん [2008/08/26(火) 00:03:21 ]
stdinを1文字単位で扱いたいのですが・・可能ですか?
Enter押すまで入力待ちになってしまいます。
機種依存が必要であればlinuxでお願いします。
proc getch {} {
return [read stdin -nonewline]
}
目的は簡易lessコマンド作成です。

329 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:10:49 ]
>>327
tclはねぇ、ローカルスコープ切れないからちょっとプロシージャが長くなると変数がゴッチャになるのよ。
長いもの書くには向かないと思うがね。

330 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:44:05 ]
zero3 [es]でeTcl使ってるんだけど・・・バージョン進むにつれてサイズでかくなりすぎ。
最新版はついに起動できなくなったwww
動的に拡張を読み込めるのがTclの利点なのに、一つの実行形式に使わない拡張までまとめないで欲しい・・・



331 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:37:04 ]
>>329
Tclなめんな!

proc block {body} {
    eval $body
}

set x 100
set y 1000
block {
    set x 200
    upvar y y
    puts "value is $x $y"; # value is 200 1000
}
puts "value is $x $y"; # value is 100 1000

332 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:41:54 ]
>>328
wiki.tcl.tk/14693
まあこれを読め

tcllib.sourceforge.net/doc/receive.html
そして次はこれだ

333 名前:デフォルトの名無しさん [2008/08/26(火) 03:33:43 ]
>>332
ありがとうございます。
解決しました!

334 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 17:03:54 ]
>>331
blockがたくさんネストしたらどこまでupvarしたらいいかわかんなくなっちゃうね。

335 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 13:49:03 ]
日本語に関して質問です。
encoding systemがwindowsではcp932, Linuxではutf-8となっていて、
スクリプトを書くさいにそれぞれの文字コードで保存せねばなりません。
(string bytelengthはいずれの環境も一緒になるので内部ではutf-8のようですが)
ですので、windowsで作ったスクリプトをそのままLinuxに持っていくと文字化けしてしまい困っております。

encoding systemをcp932やutf-8に強制的にセットしたところで上手く動きません
(windowsでencoding system utf-8にし、スクリプトをutf-8で保存しても文字化け、等)

encoding systemの異なる環境間で同一スクリプトで動かす手立てはないものですかね。

336 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:35:03 ]
Unicodeリテラルで書く。

337 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:14:41 ]
>>335
もし8.5を使ってるんだったら、、sourceやtclshやwishに-encodingオプションが付いたから、
スクリプトはcp932で書いておいて、最初の3行を

#!/bin/sh
# the next line restarts using tclsh \
exec tclsh -encoding cp932 "$0" "$@"

にすることで、できたりしませんか?

逆に、スクリプトはutf-8で書いておいて、
windowsの関連付けの方で、wishに -encoding utf-8を付けるという手もあるかも。

試せないので、無責任に書きっぱなしですいません。


ところで、スクリプトをwindowsからLinuxへ持っていくときに
nkf通して変換というのじゃ駄目なんでしょうか。

338 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:12:11 ]
>>335
shift-jisで書いておいて
#!/bin/sh
# \
LANG=ja_JP.SJIS; export LANG; # \
exec tclsh "$0" "$@"

で動くかもしれないし、動かないかもしれない。

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






[ 続きを読む ] / [ 携帯版 ]

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

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