2016-04-12 4 views
2

私は、名前に数字のあるすべての色を取り除き、それらをフィールドに入れるプログラムを作成しようとしています。私は4行目の問題にぶち当たっています。LivecodeのcolorNames()関数ですか?

on mouseup 
     global choice 
     put colorNames() into choice 
     repeat for each line in choice 
     if tcolor1 contains "1" || "2" then 
      delete tcolor1 from choice 
     end if 
     end repeat 
     put choice into fld "color list" 
    end mouseup 
+0

あなたの行は、 'myLine in choice'と' 'myLine in choice'を読んで、if文でmyLineの数値を調べるべきです。あなたのリストから行を削除しないでください。行に数字がない場合は、行を新しいリストにコピーしてください。とにかく、あなたが私の答えで見ることができるように、これを行うための別の方法があります。 – Mark

答えて

1

が見える - TColorの - あなたの選択で各行を表すために変数。また、それぞれにrepeatを使用する場合は、元の変数(選択肢)を変更するのではなく、新しい結果リストを作成する方がよいでしょう。 - LiveCodeは、その演算子のシンボルを使用していない

on mouseUp 
    global choice 
    put colorNames() into temp 
    repeat for each line tColor in temp 
     if tColor contains "1" or tColor contains "2" then next repeat -- SKIP UNWANTED RESULTS 
     put tColor & return after myColorList -- BUILD A NEW LIST 
    end repeat 
    delete last char of myColorList -- REMOVE THE LAST RETURN CHARACTER 
    put myColorList into choice 
    put myColorList into fld "color list" 
end mouseUp 

はまた、あなたが実際に(それはあなたがしようとしているものだと仮定して)書き出し「または」する必要が気づく:

のようなものを試してみてください。

0

この行は、変数myListに数字が含まれていないすべての色の名前を置く:あなたは、変数を指定することを忘れたのと同様に

filter the colorNames without "*[0-9]*" into myList 
+0

これは良い方法ですが、構文が正しくありません。フィルターをかける前に、色名をMyListに入れたいと思うでしょう。 – Jacque

+0

@Jacque動作する場合、なぜ間違っているでしょうか? – Mark

+1

申し訳ありませんが、あなたは正しいです。私はレスポンスをスキミングしたときに "into"修飾子を忘れてしまった。 – Jacque

関連する問題