Wat doe ik fout in Applescript?
14 november 2003 - 11:15   
geplaatst door: MacFanGuy
Ik heb besloten om me op Applescript te storten i.v.m. een project op mijn werk.

Bert, dank voor je geweldige AS4ASb2!! Het is helemaal het einde voor een noob-programmeur als ik! Ik gebruik geloof ik de beta 1.9.1 versie van Script Editor onder 10.2.8.

Bij het doorlopen van het boek kwam ik bij de vergelijkingen over leeftijd:


set ageEntered to 73
set myAge to 30
if ageEntered = myAge then
       display dialog "You are as old as I am."
else
       display dialog "You are nog as old as I am"
end if

Ik denk: nou, dat age entered is een beetje suf, dus ik maak gebruik van wat ik tot nu toe geleerd heb, en maak er iets met een dialoogvenster van:


set stringToBeDisplayed to "What is your age?"
set tempvar to display dialog stringToBeDisplayed default answer ""
set ageEntered to text returned of tempvar
set myAge to 25
if ageEntered = myAge then
display dialog "You are as old as I am."
else
display dialog "You are not as old as I am."
end if

   

Werkt goed... totdat ik ook daadwerkelijk 25 invul, want dan geeft ie aan alsnog aan dat we niet even oud zijn...
Waarom?

Dit script (1 op 1 uit het boek) werkt ook niet??


set stringToBeDisplayed to "Julia is a pretty actress."
set tempvar to display dialog stringToBeDisplayed buttons {"So, So", "Who?", "Yes"}
set theButtonPressed to button returned of tempvar
if theButtonPressed is "Yes" then
say " I agree entirely!"
beep
else
if theButtonPressed is "Who" then
say "Didn't you see the movie 'Pretty Woman'?"
else
say "I don't agree with you."
end if
end if
beep

Ligt het aan mij? Aan de Beta? ZIe ik iets over het hoofd?  :wacko:

Huh? Wat is dat, een PixelFreak?
Wat doe ik fout in Applescript?
14 november 2003 - 11:29    reactie #1
geplaatst door: limmelambok
Nog nooit met applescritp gewerkt, maar toch een gokje...
Zou het kunnen dat  myAge  een getal is, en ageEntered  een tekst?
Ik zou eens proberen met
set myAge to "25".
Maar ik ken natuurlijk volstrekt niets van applescript. (Doe normaal ObjectiveC, C++ en Java).

Bert

MacBookPro 2Ghz
G5 Dual*2.7
Wat doe ik fout in Applescript?
14 november 2003 - 11:36    reactie #2
geplaatst door: MacFanGuy
Alhoewel ik nog nooit geprogrammeerd heb, heb ik daar ook aan gedacht.

Echter volgens mij probeert Applescript in dit geval de string "25" te coercen naar een nummer...

Okee, ik heb het toch even geprobeerd, en als ik toevoeg:

set ageEntered to ageEntered as number

dan werkt het wel.

Waarom werkt script 3 dan niet?

Huh? Wat is dat, een PixelFreak?
Wat doe ik fout in Applescript?
14 november 2003 - 12:34    reactie #3
geplaatst door: limmelambok
Nog eens een gokje : buttonPressed bevat het volgnummer van de aangeklikte knop, niet de titel. Dus in plaats van

if theButtonPressed is "Who" then

kan je eens proberen met

if theButtonPressed is 2 then

Bert

MacBookPro 2Ghz
G5 Dual*2.7
Wat doe ik fout in Applescript?
14 november 2003 - 12:35    reactie #4
geplaatst door: Macceraar
set stringToBeDisplayed to "Julia is a pretty actress."
set tempvar to display dialog stringToBeDisplayed buttons {"So, So", "Who?", "Yes"}
set theButtonPressed to button returned of tempvar
if theButtonPressed is "Yes" then
   say " I agree entirely!"
   beep
else
   if theButtonPressed is "Who" then
      say "Didn't you see the movie 'Pretty Woman'?"
   else
      say "I don't agree with you."
   end if
end if
beep

Geen [ code ] forumcode-tags omdat ik dan geen bold/underline kan doen.

Wat doe ik fout in Applescript?
14 november 2003 - 13:15    reactie #5
geplaatst door: MacFanGuy
 :blush: Damn... Had gehoopt dat het aan Applescript lag, niet aan mijn tikkwaliteiten...

Allrighty then... ik ga maar weer verder!

Thanx all!

Zal later nog wel meer vragen hebben, naar mate mijn projectje vordert...  :thumbs-up:

Huh? Wat is dat, een PixelFreak?
Wat doe ik fout in Applescript?
14 november 2003 - 19:27    reactie #6
geplaatst door: bert
MacFanGuy om 11:15, 14-11-2003 Ik heb besloten om me op Applescript te storten i.v.m. een project op mijn werk.

Bert, dank voor je geweldige AS4ASb2!! Het is helemaal het einde voor een noob-programmeur als ik! Ik gebruik geloof ik de beta 1.9.1 versie van Script Editor onder 10.2.8.

Bedankt voor 't compliment. Overigens kun je de laatste versie (met minder vauten) vinden op de site van Bill Cheeseman (www.applescriptsourcebook.com)

Bij het doorlopen van het boek kwam ik bij de vergelijkingen over leeftijd:


Ik denk: nou, dat age entered is een beetje suf, dus ik maak gebruik van wat ik tot nu toe geleerd heb, en maak er iets met een dialoogvenster van:


set myAge to 25

Ik wou dat ik dat kon....

Werkt goed... totdat ik ook daadwerkelijk 25 invul, want dan geeft ie aan alsnog aan dat we niet even oud zijn...
Waarom?

Had ie wel moeten doen. Er vindt automatisch coersie plaats (omzetting van text naar getal). Maar eigenlijk moet je er zelf voor zorgen. as integer

Dit script (1 op 1 uit het boek) werkt ook niet??


set stringToBeDisplayed to "Julia is a pretty actress."
set tempvar to display dialog stringToBeDisplayed buttons {"So, So", "Who?", "Yes"}
set theButtonPressed to button returned of tempvar
if theButtonPressed is "Yes" then
say " I agree entirely!"
beep
else
if theButtonPressed is "Who" then
say "Didn't you see the movie 'Pretty Woman'?"
else
say "I don't agree with you."
end if
end if
beep

Ligt het aan mij? Aan de Beta? ZIe ik iets over het hoofd?

Foutje. Iemand heeft al gesignaleerd dat het vraagteken ontbrak. Je had ook 'contains' kunnen zeggen.
Om dit soort fouten te vermijden copieer ik vaak, ipv opnieuw te typen.

Groetjes,

Bert
('n Andere dan van die ene post!)

(Bewerkt door bert om 19:28, 14-11-2003)

Wat doe ik fout in Applescript?
14 november 2003 - 23:03    reactie #7
geplaatst door: Macceraar
Quotes zijn van Bert

Citaat
Had ie wel moeten doen. Er vindt automatisch coersie plaats (omzetting van text naar getal).

Hij deed 't ook, maar "Who"="Who?" is natuurlijk niet true.:wink:

Citaat
Je had ook 'contains' kunnen zeggen.

Die raad ik alleen aan als ie echt nodig is. Anders is 't namelijk verspilde CPU-tijd (de hoeveelheid hangt van de situatie af. In dit geval is 't bijvoorbeeld weinig).
*tip* Zet de twee strings wel in goed volgorde, want "Who?" contains "Who" is true, maar "Who" contains "Who?" niet.