PDA

View Full Version : AppleScript Script is doing nothing




shadow-rising
Sep 1, 2008, 07:17 PM
Ok so I'm working on an applescript just for fun. I'll be using it on a network where i can change the text file from another computer. What it is supposed to do is if the text in the file changes then it speaks the 1st line using the voice named on the 2nd line, pausing the length of time on the 3rd line and so on down the text file until it reaches the end. at this point just ignore the backup app unless that's causing the problem it's has to do with in case someone exits the app the backup up will open it back up and if someone exits the backup app it opens this app back up but I commented that part out just to make sure it wasn't causing the problem. The script is pretty self explainitory So here it is.


--initialize variables
set i to 1
set SpeechList to {}
set VoiceList to {}
set PauseList to {}
set AppleScript's text item delimiters to ";" & (ASCII character 13)
open for access file "Macintosh HD:users:shared:backup:data.txt"
set previous_text to "null"

--starting repeat that is the basis of the entire application
repeat
set raw_text to read file "Macintosh HD:users:shared:backup:data.txt"
set text_list to text items of raw_text
--testing to see if backup app is open
--tell application "backup"
--if it is running then
--else
--open backup app if it isn't open
--tell application "Finder"

--open document file "users:shared:backup:backup.app"

--end tell
--end if
--end tell
if raw_text = previous_text then
else

-- seperate each item into a list
set text_list to text items of raw_text

-- divide up the list: we want a list of the spoken terms, one of the voice to use, and last one of the pause between the spoken lines
set i to 1
set n to the number of items in text_list
repeat while i < n
set SpeechList to SpeechList & item i of text_list
set VoiceList to VoiceList & item (i + 1) of text_list
set PauseList to PauseList & item (i + 2) of text_list
-- return AppList
set i to (i + 3)
end repeat
--speak the lists: this is the whole reason this script was wrote
set i to 1
set n to (the (number of items in SpeechList) + 1)
repeat while i < n
say item i of SpeechList using item i of VoiceList
delay item i of PauseList
set i to (i + 1)
end repeat
set previous_text to raw_text
end if


end repeat