Enhanced AppleScript - New Document with AppleWorks 6
It has become abundantly clear to me that there is still a lot of interest in AppleScripts for AppleWorks 6 and questions on implementation of scripts that my previous posts on this topic have not addressed to the satisfaction of those who use AppleWorks 6 and, since it is an application that is still fairly universal in the Mac OS, I guess it is worth further examination. So, here’s an enhancement of an earlier script that I hope will be useful:
set theDocName to text returned of (display dialog "Enter new document name:" default answer "" buttons {"Set"} default button {"Set"})
set paragraph1 to text returned of (display dialog "Enter text for first paragraph of document '" & theDocName & "':" default answer "" buttons {"OK"} default button {"OK"}) -->Given this entered text: Notes on AppleScript and AppleWorks 6:
set paragraph2 to text returned of (display dialog "Enter text for second paragraph of document '" & theDocName & "':" default answer "" buttons {"OK"} default button {"OK"}) -->Given this entered text: As it appears in this document, this is the second paragraph but, to AppleScript,this is the third paragraph, because even an empty return is a paragraph in AppleScript.
set paragraph3 to text returned of (display dialog "Enter text for third paragraph of document '" & theDocName & "':" default answer "" buttons {"OK"} default button {"OK"}) -->Given this entered text: This, it would seem is the fourth paragraph but, it is actually the fifth to AppleScript.
set theData to paragraph1 & return & return & paragraph2 & return & return & paragraph3
tell application "AppleWorks 6"
activate
make new document with data theData with properties {name:theDocName}
tell front document
select paragraph 1
set the properties of the selection to {font:"Lucida Grande", size:18}
set color of the selection to {9960, 12194, 65535} --blue, an RGB value
select (paragraphs 3 thru 5)
set the properties of the selection to {font:"Monaco", size:9}
select word 14 of paragraph 3 set the properties of the selection to {size:12}
set size of the selection to 12
--Two ways to express things (look above) set colorPref to choose color default color {65535, 5195, 6617} --red, an RGB value
set color of the selection to colorPref
select (text 1 thru -1 of last word of paragraph 3)
set size of the selection to 12
set color of the selection to colorPref --red, an RGB value
select (text 1 thru -1 of last word of last paragraph)
set size of the selection to 12
set color of the selection to colorPref --red, an RGB value
save document theDocName in alias (path to desktop folder) as file type {"CWWP"}
end tell
end tell
This could be used to change the color of a number of words in the initial script all at once:
tell application "AppleWorks 6"
tell front document
try
set everyWord to (every text)
set textCount to (count everyWord)
repeat with x from 7 to textCount
if word x = "AppleScript" then
select word x
set color of the selection to {65535, 5195, 6617} --red
end if
end repeat
on error
return
end try
end tell
end tell
This is how the initial script would appear:
AppleWorks Text
To change the text style is a bit more complicated, something like this would work:
tell paragraph 1
select (words 3 thru 4)
set size of the selection to 14
set style of the selection to {class:text style info, on styles:{bold, italic}}
select word 6
set size of the selection to 14
set style of the selection to {class:text style info, on styles:{bold, outline}}
end tell
Which would look something like this:
If you run this script in the Script editor with our document in front…
tell application "AppleWorks 6"
activate
tell front document
select paragraph 1
get properties of the selection
end tell
end tell
The result for the text below (our first line), gives us some idea of the kinds of information we have at our disposal for writing scripts:
Out of this, we can see that we have these styles available:
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 mkdirOr you could create folders with the same prefix by entering:mkdir "Invoices " {"Corporate", "Individual", "Pro-Bono"}
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
Concept Drawing for iMac prior to Production
Fun HTML
Use this to add interest to your pages, but be careful, if you overdo it, it can make your page look gaudy, if not ridiculous!
Read All About It
Here's is the code as it appears above:
<p align="center" style="padding: 5px; background-color: #FFCE9C; border: dotted 5px #FFCE9C;"><marquee width=20% behavior=scroll direction=left loop=infinite> Latest Headlines... </marquee><blink>Read All About It</blink>/p>
Copy and paste this into the Script Editor and try it out:
set defaultVolume to "3"
set volumeLevel to text returned of ¬
(display dialog ¬
"Set the system volume to (7 is the highest):"¬
default answer defaultVolume with icon note¬
buttons {"OK"} default button "OK") as integer
set volumeValues to {0, 1, 2, 3, 4, 5, 6, 7} ¬
as list
if volumeLevel is not in volumeValues then ¬
set volumeLevel to defaultVolume
tell application "Finder"
try
set volume volumeLevel
beep 2
on error errDlog
display dialog errDlog with icon stop ¬
buttons {"Abort"} default button ¬
"Abort" giving up after 15
end try
end tell
Six-figure Yaro Starak Teaches You How To Set Up And Profit From A Successful Blog. Start Making Money From Blogs By Following This Step-by-step, Weekly Coaching Program
Heres an AppleScript for backing up a selected group of HyperCard files. this was used in one of my HyperCard stacks, but could be adapted for use in OSX programs with little or no modification:
send "suiteBkp(true)" to bg btn "BackupSuite"
--Use this line to call the handler below (true displays a notification dialog when the process is complete, you must have a button named bg btn "BackupSuite"):
on suiteBkp(theBoolean)
copy line 1 of field "selectedFolder" to theHFFolderPath --You'll need a hidden field named "selectedFolder" that a script (prior to the call) will place the path to the desired folder in.
tell application "Finder"
activate
set todaysDate to (current date)
set bkpYear to (year of todaysDate)
set monthlyBkp to ("Monthly Reports_" & bkpYear) as string
if exists (folder "HyperCard Backup") then
select folder "HyperCard Backup"
delete selection
end if
if exists (folder "HyperCard Backup" of folder theHFFolderPath) then
select folder "HyperCard Backup" of folder theHFFolderPath
delete selection
end if
make new folder at folder theHFFolderPath with properties {name:"HyperCard Backup"}
select {file "Appointments" of folder theHFFolderPath, ¬ file "HyperFile" of folder theHFFolderPath, ¬ file "Outstanding Invoices" of folder theHFFolderPath, ¬ file "Year" of folder theHFFolderPath, ¬ file monthlyBkp of folder theHFFolderPath, ¬
copy selection to folder "HyperCard Backup" of folder theHFFolderPath
select folder "HyperCard Backup" of folder theHFFolderPath
select file "Appointments" of folder ¬ "HyperFile Suite Backup" of folder theHFFolderPath
set name of selection to "Appointments.bkp"
select file "HyperFile" of folder "HyperCard Backup" of ¬ folder theHFFolderPath
set name of selection to "HyperFile.bkp"
select file "Outstanding Invoices" of ¬ folder "HyperFile Suite Backup" of folder theHFFolderPath
set name of selection to "Outstanding Invoices.bkp"
select file "Year" of folder "HyperFile Suite Backup" of ¬ folder theHFFolderPath
set name of selection to "Year.bkp"
set prefMonthlyBkp to (monthlyBkp & ".bkp") as string
select file monthlyBkp of folder "HyperFile Suite Backup" of ¬ folder theHFFolderPath
set name of selection to prefMonthlyBkp
select folder "HyperFile Suite Backup" of folder "The HyperFile Folder"
move selection to desktop
end tell
if theBoolean = "true" then
tell application "HyperCard"
activate
display dialog ¬ "Your backup has been saved to desktop." buttons {"Done"} default button {"Done"} with icon 129 giving up after 10
end tell
end if
end suiteBkp
Here's a simple, but very useful little HyperTalk script for verifying the validity of a date entered by a user, assuming that you have a menu item "flag date..." (or whatever you choose to name it) or it could be altered slightly and placed within a mouseUp statement:
if menuItem = "Flag Date..." then
global tryDate
ask "Enter a date for your new appointment:" with the long date
if it ≠ "" and the result ≠ "Cancel" then
put it into tryDate
else
put "" into tryDate
exit doMenu
end if
if invalidDate() then
answer "The date entered is not valid!"
put "" into tryDate
exit doMenu
end if
--Here you would put the statements to execute if the entered date proves to be valid
put "" into tryDate
end if
function invalidDate
global tryDate
convert tryDate to short date
if the result = "invalid date" then
return true
else
return false
end if
end invalidDate
Mac SE (circa 1987), was a more advanced version of the Mac Plus and had an internal hard drive.
YouTube Video Search Script:
tell application "Finder"
try
set webSearch to text returned of (display dialog "Enter YouTube Video
Search" default answer "" buttons {"Search", "Cancel"} default button 1)
open location "http://www.youtube.com/results?search_query=" & webSearch
on error theError
display dialog theError
end try
end tell
Recent Comments