• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Variable Probleme

  • Ersteller Ersteller -Ph!L-
  • Erstellt am Erstellt am

-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
 
Zuletzt bearbeitet von einem Moderator:
Welche Sprache soll das sein? Es mutet ein bißchen wie AppleScript an, kann aber nicht übersetzt werden.
 
Klar ist das Applescript.. Was soll es sonst sein? Wo ist denn der Fehler..
 
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
 
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...
 
Und was muss ich den schreiben damit es richtig klappt?
 
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).
 
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.)
 
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
 
Ich arbeite mit Xcode,

aber der code funktioniert leider immer noch nicht..
 
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.
 
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?
 
  • Like
Reaktionen: 1 Person
Menno! Clone! Das sollte er doch selbst lernen und nicht vorverdaut präsentiert bekommen!
 
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 ;-)
 
das ist ansichtssache. wenn man gerade anfängt, kann einen applescript schon ziemlich bekloppt machen.
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.