1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Variable Probleme

Dieses Thema im Forum "AppleScript" wurde erstellt von -Ph!L-, 29.05.07.

  1. -Ph!L-

    -Ph!L- Gast

    Hi,
    ich bin gerade dran mein Programm zu verbessern, indem ich mehr Codecs ein baue jedoch öffnet sich keine Variable, wenn ich auf den Button klicke.
    Hier mein Code:


    on clicked theObject
    set a to display dialog {"MP3", "Apple Lossless", "AAC", "AIFF"}

    if the answer is "MP3" then
    tell application "iTunes"
    set current encoder to encoder "MP3 Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "Apple Lossless" then
    tell application "iTunes"
    set current encoder to encoder "Apple Lossless Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "AAC" then
    tell application "iTunes"
    set current encoder to encoder "AAC Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "AIFF" then
    tell application "iTunes"
    set current encoder to encoder "AIFF Encoder"
    convert playlist "convertlist"
    end tell
    end if
    end clicked
     
    #1 -Ph!L-, 29.05.07
    Zuletzt von einem Moderator bearbeitet: 29.05.07
  2. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Welche Sprache soll das sein? Es mutet ein bißchen wie AppleScript an, kann aber nicht übersetzt werden.
     
  3. -Ph!L-

    -Ph!L- Gast

    Klar ist das Applescript.. Was soll es sonst sein? Wo ist denn der Fehler..
     
  4. -Ph!L-

    -Ph!L- Gast

    Habs:


    on clicked theObject
    set a to choose from list {"MP3", "Apple Lossless", "AAC", "AIFF"}

    if the answer is "MP3" then
    tell application "iTunes"
    set current encoder to encoder "MP3 Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "Apple Lossless" then
    tell application "iTunes"
    set current encoder to encoder "Apple Lossless Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "AAC" then
    tell application "iTunes"
    set current encoder to encoder "AAC Encoder"
    convert playlist "convertlist"
    end tell
    end if
    if the answer is "AIFF" then
    tell application "iTunes"
    set current encoder to encoder "AIFF Encoder"
    convert playlist "convertlist"
    end tell
    end if
    end clicked

    Da musste set a to choose from list, anstatt set a to display dialog hin..

    Aber, nächstes Problem, wenn ich den Codec wähle, kommt Variable Answer ist not defined.. Wo liegt jetzt der fehler
     
  5. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Wenn Du "a" setzt, aber "answer" abfragst, ist das ja wohl kein Wunder.

    Wäre übrigens geschickt, wenn Du um deinen Code ein
    Code:
     
    setzen könntest...
     
  6. -Ph!L-

    -Ph!L- Gast

    Und was muss ich den schreiben damit es richtig klappt?
     
  7. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Du lernst noch zu Programmieren, gell?

    Überleg mal... Wenn Du eine Variable (answer) abfragen willst, mußt Du doch vorher dieser Variablen auch einen Wert zuweisen und nicht einer anderen mit einem ganz anderen Namen (a).
     
  8. -Ph!L-

    -Ph!L- Gast

    Ja ich lerne es gerade, deswegen die doofen Fragen.

    Wenn ich die Variable answer nenne, passiert später wenn ich z.B mp3 klicke nichts. NORMALERWEISE sollte iTunes dann ja konvertieren.
    und wenn ich if a is "MP3"... eingebe, passiert ebenfalls nichts.. Aber der code
    tell application "iTunes"
    set current encoder to encoder "MP3 Encoder"
    convert playlist "convertlist"

    läuft, den hab ich schon ausprobiert (mit erfolg.)
     
  9. Andy001

    Andy001 Gast

    also wenn das apple script studio sein soll dann ... naja stimmt so einiges nicht ...

    du machst hier die variable "a" zu einem display dialog du musst eher sowas machen:

    if button returned of a is "MP3"

    mfg andy
     
  10. -Ph!L-

    -Ph!L- Gast

    Ich arbeite mit Xcode,

    aber der code funktioniert leider immer noch nicht..
     
  11. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Lass mal nur diesen Teil laufen:
    Code:
    set a to choose from list {"MP3", "Apple Lossless", "AAC", "AIFF"}
    
    Vielleicht siehst Du dann, was verkehrt ist. Ich weiß allerdings nicht, ob das in XCode genauso zu sehen ist, wie im ScriptEditor.
     
  12. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    versuchs mal so, und werwende dann auch "a" statt "answer" im weiteren code:

    set a to item 1 of (choose from list {"MP3", "Apple Lossless", "AAC", "AIFF"} without multiple selections allowed)

    das 1. problem ist, dass der "choose from list"-befehl auch eine liste als ergebnis liefert. deshalb "item 1". du kannst das ergebnis leicht überprüfen mit get class of a. was du brauchst, ist ja ein string, weil du ja mit einem string vergleichst.

    das 2. problem ist das von skeeve bereits beschriebene: wenn du das ergebnis in "a" abspeicherst, musst du auch anschliessend "a" mit den strings vergleichen, und nicht "answer".
    und was ist das "clicked Object", das den code auslöst?
     
    1 Person gefällt das.
  13. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Menno! Clone! Das sollte er doch selbst lernen und nicht vorverdaut präsentiert bekommen!
     
  14. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    das ist ansichtssache. wenn man gerade anfängt, kann einen applescript schon ziemlich bekloppt machen. da ist man für jeden tipp dankbar. und wenn man hier eine frage stellt, gehe ich davon aus, dass der/diejenige schon einiges versucht hat.
    das heisst ja nicht, dass man dabei nichts lernt. deshalb die erklärungen.
    und ich denke, das applescript noch genügend geheimnisse für phil übrig behält. schliesslich gilt applescript als apples am besten behütetes geheimnis ;)
     
  15. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Nicht nur dann... Aber ich habe ihm ja gerade das mit dem choose alleine empfohlen, weil man da im Scripteditor wunderbar sieht, daß eine Liste und nicht ein String zurückkommt. Das sind halt die Dinge, die ich selbst mache, wenn mir mal wieder was merkwürdig vorkommt.

    Ich denke halt, daß es besser ist, jemanden auf die richtige Spur zu bringen als am Ziel abzusetzen.
     
  16. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    wie gesagt: ansichtssache. aber okay: sorry.
     

Diese Seite empfehlen