2016-04-12 3 views
2

Ich versuche, ein Programm zu schreiben, das alle Farben mit Zahlen in ihren Namen loswird und sie dann in ein Feld legt. Ich stoße auf Probleme mit Zeile 4. Irgendwelche Vorschläge?Livecode colorNames() Funktion?

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

Ihre Zeile sollte 'wiederholen für jede Zeile myLine in Auswahl 'lesen und in der if-Anweisung sollten Sie myLine auf Nummern überprüfen. Löschen Sie die Zeilen nicht aus Ihrer Liste, sondern kopieren Sie die Zeilen in eine neue Liste, wenn sie keine Nummern haben. Wie Sie in meiner Antwort sehen können, gibt es einen anderen Weg, dies zu tun. – Mark

Antwort

1

aussieht wie Sie die Variable angeben vergessen - TColor - jede Zeile in Ihrer Wahl darstellen Variable. Wenn Sie Wiederholungen für jedes Element verwenden, sollten Sie besser eine neue Liste der gewünschten Ergebnisse erstellen, anstatt zu versuchen, die ursprüngliche Variable (Auswahl) zu ändern.

Versuchen Sie so etwas wie:

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 

Beachten Sie auch, was Sie brauchen, um tatsächlich schreiben „oder“ (unter der Annahme, dass das, was Sie versuchen, sie) - Livecode ein Symbol nicht für diesen Operator verwenden.

0

setzt diese Linie alle Farbnamen, die Zahlen nicht in variable myList enthalten:

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

Dies ist eine gute Methode, aber die Syntax ist falsch. Sie sollten die Farbnamen vor dem Filtern in MyList einfügen. – Jacque

+0

@Jacque, wenn es funktioniert, warum sollte es falsch sein? – Mark

+1

Entschuldigung, Sie haben Recht. Ich habe den "In" -Modifikator vergessen, als ich die Antwort überflogen habe. – Jacque

Verwandte Themen