●●●●TCL/TKなら俺に聞け 4●●●● (542レス)
1-

331: 2019/02/16(土)12:37 ID:8dsmpsXe(1/5) AAS
何がやりたいの?
lstの要素が1、2、3で変数sの値を文字列"1 2 3"にしたいなら下のでいいけど
set s $lst
332
(1): 2019/02/16(土)12:43 ID:lF7O1vpr(2/6) AAS
set s [format "%03d %03d %03d" $lst]
みたいなのでもうまくいかないんです
333: 2019/02/16(土)12:51 ID:8dsmpsXe(2/5) AAS
integer指定してるのに文字列食わしてるからじゃん
334: 2019/02/16(土)12:57 ID:lF7O1vpr(3/6) AAS
set lst [list [expr 1] [expr 2] [expr 3]]
set s [format "%03d %03d %03d" $lst]

これでもダメでした><
335: 2019/02/16(土)13:09 ID:8dsmpsXe(3/5) AAS
tclでは全ての変数が文字列なんだからそりゃそうなる
数値1をリストlstに格納するときに数値1は文字列1に変換される
336: 2019/02/16(土)13:12 ID:lF7O1vpr(4/6) AAS
set lst [list 1 2 3]
set s [format "%03d %03d %03d" [lindex $lst 0] [lindex $lst 1] [lindex $lst 2]]

これならエラーにならないんですが面倒なので
もっと良い方法ありませんか?
337: 2019/02/16(土)13:16 ID:lF7O1vpr(5/6) AAS
あと 335 さんの主張する仕様だと [lindex $lst 0] は文字列なので
333 さんの話と矛盾してる気がしますがどういうことでしょう
338: 2019/02/16(土)13:21 ID:8dsmpsXe(4/5) AAS
数値に変換できるときは勝手に変換してくれるんだね知らなかった
見当違いなこと言ってごめん
339: 2019/02/16(土)13:25 ID:lF7O1vpr(6/6) AAS
なんとなくこれで行ける気もしたのでやってみたのですが

set s [format "%03d %03d %03d" [list $lst]]

だめでした><
もう一息な気がするのであきらめつかずモヤモヤしています
340: 2019/02/16(土)15:44 ID:O+uQ3VIp(1) AAS
代行レスはここへ
2chスレ:operatex

160 名前: [Φ|(|´|Д|`|)|Φ] BBxed!! 臨時で名無しです[] 投稿日:2019/02/16(土) 13:42:57.64
お手数ですがよろしくお願いします。

【板名】プログラム技術
【スレ名】●●●●TCL/TKなら俺に聞け 4●●●●
【スレのURL】2chスレ:tech
【名前欄】代行経由
【メール欄】sage
【本文】↓
>>330
330さんが考えているような書き方は出来ないと思われる。

Tclのリストは空白区切りの単なる文字列です。

list 1 2 3 は3つの要素のリストを生成するが、
"1 2 3" という1つの文字列という扱いです。

よって、set s [format "%d %d %d" $lst] とすると、
set s [format "%d %d %d" "1 2 3"] のように置き換えられます。

求めている回答ではないかも知れませんが、ひと手間かけて以下
のようなことはできます。

リストの各要素をそれぞれ分離して別々の変数にするには、
lassignコマンドを使います。

set lst [list 1 2 3]
lassign $lst x y z

set s [format "%d %d %d" $x $y $z]

これでどうでしょうか。
341: 2019/02/16(土)16:20 ID:STqQL4YT(1/3) AAS
set lst [list 1 2 3]
set s [eval "format {%02d %02d %02d} $lst"]

これでいけました
ほんとうにありがとうございました
342: 2019/02/16(土)16:35 ID:AfCn0+WA(1) AAS
>>330
set s [format "%d %d %d" {*}[list 1 2 3] ]
343: 2019/02/16(土)16:49 ID:vYP1vVnz(1) AAS
eval使ったら負け
344
(2): 2019/02/16(土)16:52 ID:STqQL4YT(2/3) AAS
set lst [list 1 2 3]
set s [format {%02d %02d %02d} {*}$lst]

これでもいけました
ほんとうにありがとうございました
345
(1): 2019/02/16(土)17:07 ID:8dsmpsXe(5/5) AAS
>>344
この書き方初めて見た
いつもforeachで回してたけどこういう書き方もできるんだね
346: 2019/02/16(土)17:11 ID:STqQL4YT(3/3) AAS
んー expand でも検索したつもりだったのになー

外部リンク[html]:www.geocities.co.jp
>なお、{*}は、8.5がαリリースだったときには{expand}というトークンでして、
>このページにも長くそのように書いていましたが、 正式リリースに伴って{*}と変更されました。
347: 2019/02/16(土)18:03 ID:mSqP7pCT(1) AAS
存在を知らないと気付かない機能のリスト
外部リンク:sites.google.com
348: 2019/02/16(土)19:34 ID:kXtbvz/w(1) AAS
>>324
OSと、tcl/tk, Python/Tkinter それぞれのバージョンと、バイナリパッケージでインストールしたなら、
パッケージの入手元は?

>>328
tcl皆無にするなら、tkinterも動かないんわけだけど
349
(1): 2019/02/16(土)22:13 ID:WrrsgfdN(1) AAS
>>345
ver8.4迄はリストをバラして個別に適用するには、evalを使うのが"正統的裏技"だったがver8.5から{*}が導入されマニュアル8.6版のevalの項目ではこちらの使用が推奨されている。
ver8.6のマニュアルでは、eval,info,Tclの項目に小分けして{*}の説明が少しだけある。
350: 2019/02/17(日)11:27 ID:7mUUrd8D(1) AAS
同じ動作をさせてるつもりなのですが
ぬるぬる感が明らかに違うので

tkinter + tix
外部リンク:ideone.com

Tcl/Tk + BWidget
外部リンク:ideone.com

違うものを比べてると言われればそうなのかも知れません
351
(1): 2019/02/17(日)11:34 ID:7MWZQWrl(1) AAS
>>349
*$lst じゃなくて {*}$lst って書かないといけないのは

文法仕様上前者が無理だったということかな
前者が実現出来ない理由が良く判らない
352: 2019/02/17(日)17:33 ID:MVql6Ciy(1) AAS
>>351
多くの言語で、ポインタの内容を *str_pp の様に記す習慣がある。
紛らわしくないように "*" ではなく "{*}" を使用したのかも、単なる趣味かも、判りません
353: 2019/02/18(月)10:22 ID:jrTRVIL4(1) AAS
単なる変数展開と個々の引数としての展開では大きく違うからあえて冗長な書き方をすることでパッと見で両者の区別がつくようにしてるんじゃないかな
354
(1): 2019/02/18(月)15:25 ID:bbNHvPxv(1) AAS
lassign で型限定する方法ない?
355: 2019/02/23(土)22:18 ID:05po+dKO(1) AAS
>>354
やりたいことをもう少し具体的に…(やっぱり難しくてお手上げかもしれないが)
356: 本田 2019/03/08(金)06:16 ID:UCtp3rvd(1) AAS
design patterns in tcl tk - YouTube
動画リンク[YouTube]


Brent B Welch
外部リンク:www.beedub.com
357: 2019/03/10(日)00:10 ID:DeZad1wc(1) AAS
>>332
set s [format "%03d %03d %03d" {*}$lst]
358: 2019/03/10(日)15:03 ID:uFsYqTSV(1) AAS
>>344
359: 本田 2019/04/07(日)22:45 ID:vq1byQ+H(1) AAS
Tcl-Tk vs Wx Widgets
外部リンク:wiki.tcl-lang.org

wxWidgets - Workshop Complex at bitWalk - Fuhito Suguri
外部リンク[php]:bitwalk.sitemix.jp
360: 本田 2019/04/19(金)06:32 ID:MQ2wvTRS(1) AAS
Xilinx Tcl Store
外部リンク[html]:japan.xilinx.com
1-
あと 182 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.008s