>
Apple-AppleScript-Script-Editor-Logo

Basic AppleScript Dialog:

display dialog "Your text here" with icon stop buttons {"OK"} default button {"OK"} giving up after 5

'giving up after 5' will automatically close the script after the indicated interval of time has elapsed.

HTML Anchor Code

Here is a sample of how to write code to link one part of your blog page to another:

<a name = "By Email">[optional text]</a> --place this where you want the link to go <a href = "#By Email">By Email</a> --this is the actual link

more HTML

HTML Code to Link to Other Web Pages

Here is a sample of code to link to another page. this is similar to the anchor code, except that the destination code is the url of the destination site:

<a href= "www.webSite.
com"> Website Name</a>

--just replace "www.webSite.
com"
with the actual url destination site and replace 'Website Name' with the prompt that the user will see.

My Links

Apple-IIc-Apple-Screen

AppleScript Note:

It might be interesting to those of you who are AppleScript enthusiasts that the HyperCard (HyperTalk) project was the prototype back in the '80's of what became the system-wide Applescript language (akin to JavaScript) that is in use today.
Apple-Mac-512-Screen
3d-iMac-Large

Trapping for List Dialog Errors

With 'List Dialog' type dialogs, since errors cannot be intercepted in an 'on error' handler, there is no 'normal' way to trap for 'Cancel' which, of course, would result in some sort of undesirable error dialog such as 'User cancelled. Error number -128'. Here is an example of one simple way I have found to trap for this type of error: set x to (choose from list {"Joe","Amy",
"Bill"} with prompt "Choose a record:")
if x is false then
else
set targetItem to (x as text)
show every record whose cell "Name" contains x
end if
When the user clicks on 'Cancel', the variable x is assigned the boolean value false. So all you have to do is set up a conditional to deal with that and to perform the usual statements otherwise.

Learning AppleScript

AppleScript-123-Book

Create Multiple Folders with Terminal

If you are more of a techy kind of person and are comfortable with using Terminal, here is a script you can use to easily create multiple folders:

First, for a single folder, type in: mkdir "Folder 1" --or whatever you want to name your folder, this creates a new directory, which, in effect is a new folder. To place multiple items in the 'Documents' folder: cd/Users/Administrator/Documents mkdir "Folder 1" "Folder 2" "Folder 3" To quickly create multiple folders, create a text file with the desired folder names (as many as you want) and name it something like 'folderList.txt'. Next type this in Terminal: cat folderList.txt |xargs mkdir Or you could create folders with the same prefix by entering: mkdir "Invoices " {"Corporate", "Individual", "Pro-Bono"}

Digg! Digg This!!

Mac LC III (1994), the first Mac that I ever owned, the CD-Rom and Zip drive were added much later.

Mac LC III (1994), the first Mac that I ever owned, the CD-Rom and Zip drive were added much later.

Basic HTML

Here is an example of a very simple HTML document:

<html>
<head>
<title>Basic HTML Document</title>
</head>
<body>
Your text goes here
</body>
</html>

more HTML

Working with Dates and Using Math Operators

One of the more curious aspects of AppleScript that inexperienced scripters are not aware of (and even more experienced scripters often overlook) is the fact that you can use the greater than [>] operator and the less than [<] operator with dates to determine, for instance, which of two given dates occurs first in the calendar year.Apple-Mac-Motorola-Hard-Drive

This, of course, contradicts everything that we did in math class at school, but it actually is a bullt-in capability of the AppleScript language.

If you run this first script in Script Editor you can see that AppleScript can understand the use of greater than and less than. This script coerces default or entered text to date format with the time appended and returns a result reflecting which time of the entered date occurs logically before the other:

set targetDate to date string of (current date)
set targetDate to text returned of (display dialog "Enter a date:" default answer targetDate buttons {"OK"} default button 1)
set dateTime1 to date (targetDate & " 1:00:00 PM")
set dateTime2 to date (targetDate & ":" & " 7:00:00 AM")
set datetext to date string of dateTime1
set time1 to time string of dateTime1
set time2 to time string of dateTime2
set dateTimeString1 to dateTime1 as string
set dateTimeString2 to dateTime2 as string
if (dateTime1 > dateTime2) then
display dialog (datetext & return & return & time1 & " occurs after " & time2 & ".")
else if (dateTime1 < dateTime2) then
display dialog (datetext & return & return & time2 & " occurs after " & time1 & ".")
end if

120x20 thumb black

And then this example that uses just a little bit of FileMaker scripting at the beginning. It uses the ‘exists’ keyword to determine if the date can be found before proceeding and therefore is faster than if you tried this by using a repeat loop. Also, since the conditional pre-qualifies the show statement, there is no need for an error handler, although I include one here, because it is always a good practice, since there can always be some circumstance that you may have not anticipated. (FileMaker is in bold):

Freeze Window
Perform AppleScript [
tell application "FileMaker Pro"
activate
tell database 1
show every record
sort layout 0 by {field "sortDate"} in order ascending
--'sortDate' is a field defined as type date
set targetRecord to (get ID of current record)
try
set targetCalcDate to (current date)
set targetFound to true
set searchDate to date string of (targetCalcDate)
if exists (some record where searchDate is in ¬
cell "AppointmentsDate") then
--'AppointmentsDate' is a text field that
--contains the long date of each record
show (every record where searchDate is in ¬
cell "AppointmentsDate")
else
set targetFound to false
end if
if targetFound = false then display dialog ¬
"The date \"" & searchDate & ¬
"\" was not found!" with icon 0 buttons {"OK"} ¬
default button 1 giving up after 10
on error errorMsg
display dialog errorMsg
show every record
sort layout 0 by {field "sortDate"} in order ascending
set targetRecord to (get ID of current record)
end try
set targetRecord to (get ID of current record)
show every record
sort layout 0 by {field "sortDate"} in order ascending
go to record ID targetRecord
end tell
end tell
]

Designed Apple iMac teal

As always, if you have any questions or comments, contact me at: hyperscripter@gmail.com or http://twitter.com/hyperscripter or to subscribe, click the By Email link at the top of the page.

Favorite this site:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogosphere News
  • Live
  • StumbleUpon
  • Technorati
  • TwitThis
  • Yahoo! Buzz
  • MySpace
  • YahooMyWeb
  • HackerNews
  • RSS
  • Twitter
  • E-mail this story to a friend!
  • Internetmedia
  • Webnews.de
  • Yahoo! Bookmarks
Apple-ID-Badge

Apple-Computer-Sticker-Old
Create Multiple Folders with Terminal

If you are more of a techy kind of person and are comfortable with using Terminal, here is a script you can use to easily create multiple folders:

First, for a single folder, type in: mkdir "Folder 1" --or whatever you want to name your folder, this creates a new directory, which, in effect is a new folder. To place multiple items in the 'Documents' folder: cd/Users/Administrator/Documents mkdir "Folder 1" "Folder 2" "Folder 3" To quickly create multiple folders, create a text file with the desired folder names (as many as you want) and name it something like 'folderList.txt'. Next type this in Terminal: cat folderList.txt |xargs mkdir Or you could create folders with the same prefix by entering: mkdir "Invoices " {"Corporate", "Individual", "Pro-Bono"}

Add http://www.scriptsforapple.com to Technorati Favorites

Apple-iMac-Rainbow

Digg! Digg This!!

An AppleScript to Verify a Date

Run this in the Script Editor:

set dateRecord to (current date)
set defaultDate to (date string of dateRecord)
try
set apptDate to text returned of (display dialog "Enter appointment date:" default answer defaultDate buttons {"Set"} default button {"Set"})
set datetext to apptDate as text
date apptDate --if an invalid date is entered, the next dialog is aborted and it triggers the error alert below.
display dialog datetext & " is a valid date." with icon note buttons {"OK"} default button {"OK"}
on error
set alertText to "An error has occurred!"
set messageText to quote & datetext & quote & " is an invalid date."
display alert alertText message messageText as warning buttons {"OK"} default button "OK" giving up after 15
return
end try

Airport-Extreme-Hardware