Problem med script editor.

Tråden skapades och har fått 10 svar. Det senaste inlägget skrevs .
1

Som rubriken anslår har jag problem med Script editor.
Vad jag än matar in för kod oavsett om den är självskriven eller saxad direkt från en tutorial så får jag syntax errors eller andra fel...

Vad sker och hur kan man åtgärda det?

Tack på förhand

/Johan

Om koden är fel, eller innehåller konstiga tecken (styrkoder från tex Microsoft Word är en klassiker eller konstig encoding från webbsidor), så är den fel och det går inte att kompilera. Men all kod kan inte vara fel? Vad säger felmeddelandet och hur ser koden ut?

Jag har testat att skriva och sen kopiera koden från en chm. Det är Applescript in a nutshell från O'Reilly.
__________________________________________________________________________________
tell application "Finder"

activate

set memblock to (largest free block / 1024 / 1024)

display dialog "The largest free block is now about " & (memblock) &¬

" megabytes."

end tell
_________________________________________________________________________________
Detta är ett exempel men jag har upplevt problem när jag använt mig av andra tutorials också.

Vad är "largest free block" ?

Det finns inte i vare sig Finder, AS Core eller Standard Additions

Vad är en chm? Det är om styrkoder och knasiga osynliga tecken är alltså inte något jag fantiserat om, det finns alltså och kan vara en orsak. Prova att göra kopiera, klistar in i ett rent textdokument i textredigeraren, kopiera därifrån, sedan till Manusredigeraren. Då "tvättas" osynliga styrkoder bort.

En annan sak: Detta tecken: ¬ funkar inte att klistra in från andra ställen. Du måste ersätta alla dessa med egna. (Alt + retur tror jag det är). Eller strunta i att ha radbrytningar alls. Nyare manus gör radbrytningar själv, det var inte så förut.

Script Editor funkar så att den kollar på dina "tells" så att den vet vilket program du försöker prata med, sedan kollar den i ordlistan för det programmet efter syntaxen på de kommandon du skrivit och försöker se om det kan funka. Om du då alltså har angett ett kommando som funkar tex i Photoshop, men nu så är du inuti ett Tell som riktar sig mot Finder, så får du ett syntax error.

Allting du inte omger med fnuttar (det är det tekniska namnet på " ) är också kommandon. Även mellanslag inuti variabelnamn är en dum ide, skriver largest_mem_block istället om det nu är en variabel du har satt tidigare i scriptet.

Script editor brukar även peka på exakt var den kör fast så det blir lätt att rätta till det hela. Läs ditt felmeddelande och observera VAR markören står och blinkar. Det brukar vara där den körde fast.

Senast redigerat 2009-07-09 17:11

Richard: Som sagt, detta är inte jag som skrivit. Det är direkt ifrån O'Reillys tutorial "Applescript in a nutshell"
Taz: En .chm är ungefär som en .pdf-fil. Alltså ett filformat vanligt använt för digitala böcker.
Jag testade som du sa att kopiera koden in i textredigeraren men koden såg exakt likadan ut och problemet kvarstod. Det script editor verkar hänga upp sig på är ordet _free_ i ( largest free memblock )

Hur gammal är boken? Tror att "set memblock to (largest free block / 1024 / 1024)" är kod från OS9-tiden.

edit:
.chm är "compiled html", ett filformat från Microsoft för hjälpfiler och dylikt.

Att koden SER likadan ut betyder alltså inte att den ÄR likadan. När man kopierar från ett ställe till ett annat kan man få med osynliga styrkoder och styrtecken. Jag trodde det framgick i mitt inlägg nr 5. Se exempel i denna tråd:

http://www.99.se/apple-programvara/245735-hur-importera-textfil-i-adressboken.html

Skriva av koden för hand i ett nytt dokument.

Sedan är kanske Hagelin på rätt spår i det här fallet.

Jag _har_ skrivit koden på nytt før egen maskin och æven testat att kopiera den med textredigeraren som mellanhand. Boken ær till OSX men det ær møjligt att det ændå skett før mycket førændringar sedan boken slæpptes. Tack i alla fall før visat intresse och hjælpen så långt. Jag får førsøka hitta en ny bok att førkovra mig i.
Æring och frid
/Johan

Hittade boken och kodsnutten i Google Böcker. Den är från 2001 och behandlar både OS9 och Mac OS X, men efter att ha skummat igenom den får jag intrycket att det i stort sett är en OS9-referens med lite information om att skapa skript i OS X infogat. Jag tror inte kodexemplen är uppdaterade för OS X.

Enligt en artikel på macscripter.net försvann "largest free block" i 10.0:

Citat:

The dictionaries of Finder 9.1.1 and Finder 10.0 are similar at first glance, but on closer inspection there are many omissions and new features in Finder 10.0, some reflecting differences in the underlying operating system and others the fruit of an ongoing effort to simplify and rationalize the Finder's dictionary.

...

The following properties are gone from the Application class: Largest Free Block, File Sharing, Sharing Starting Up, About This Computer, and Execution State. I believe some of these will reappear in other places. These new properties are added: Startup Disk, Trash, and Home. Only Home offers new functionality, reflecting the multiuser nature of the operating system.

Se dær ja!
I inledningen fick jag bilden av att boken behandlade applescript i OS X. Men så var alltså inte fallet.
Tack før infon Hagelin

1
Bevaka tråden