2017-07-06 38 views
0

は、私は、次のようなフォーマットされた2列ありますTCL、文字列から2つの整数をリストに抽出しますか?

(1234, 4567) 

をそして私は私が最初のリストから2つの整数を抽出し、リスト内の最初の2つの整数を交換したいリスト

points {0 1 2 4} 

を持っています、 2番目のリストから2つ以上の整数を抽出し、リストの3番目と4番目の整数を置き換えます。最後に、2つの文字列から4つの整数のリストを取得します。

これまでのところ私はあらゆる種類のことを試しましたが、リストには誤りや括弧で終わってしまいました。私はそれを行う簡単な方法を逃していると感じています。

答えて

0

最初の値のセットでは、scanまたはregexpと解析できます。この場合には、私がscanが良く見えると思う:

set input "(1234, 5678)" 
scan $input "(%d,%d)" a b 

はTclリストを更新するには(正式には、変数の1)、あなたはlsetを使用します。一連の(ゼロベースの)インデックスを与えて、更新したいリストの正確な場所にナビゲートすることができます。

set workingArea "points {0 1 2 4}" 
lset workingArea 1 2 $a 
lset workingArea 1 3 $b 

puts $workingArea 
# prints: points {0 1 1234 5678} 
関連する問題