我有一个包含iCal事件信息的文件(/test.txt)。
Friday, May 6, 2011 4:00:00 PM
05/08/2011 11:20:00 PM
summary
location
Friday, May 6, 2011 4:00:00 PM
05/08/2011 11:20:00 PM
summary
location
这是读取此文件以制作iCal事件的AppleScript。
set Names to paragraphs of (read ("/test.txt"))
set my_list to {}
set temp_list to {}
repeat with nextLine in Names
if length of nextLine is greater than 0 then
set temp_list to temp_list & nextLine
else
copy temp_list to end of my_list
set temp_list to {}
end if
end repeat
repeat with e in my_list
set my_list to {}
tell application "iCal"
tell calendar "Todo"
set new_event to make new event at end of events
tell new_event
repeat with j from 1 to count e
set content to item j of e
if j is 1 then
set start date to date content --> Error
end if
if j is 2 then
set end date to date content
end if
if j is 3 then
set summary to content
end if
if j is 4 then
set location to content
end if
end repeat
end tell
end tell
end tell
end repeat
运行此代码会给我一个错误
为什么会出现这个错误?
答案 0 :(得分:3)
你有两个问题首先你需要在循环之后添加最后一个事件然后你试图在ical tell block中设置日期因为某些原因不起作用所以我把它从tell块中取出我也稍微改进了代码
set theData to read ("path:to:test.txt" as alias)
set ParaCount to count of paragraphs of theData
set my_list to {}
set temp_list to {}
repeat with i from 1 to ParaCount
set thispara to paragraph i of theData
if thispara is equal to "" then
copy temp_list to end of my_list
set temp_list to {}
else
set temp_list to temp_list & thispara
end if
end repeat
copy temp_list to end of my_list -- copy the last one to the list
repeat with aEvent in my_list
set {start_date, end_date, sum, loc} to aEvent
set start_date to date start_date
set end_date to date end_date
--reduced to single line
tell application "iCal" to make new event with properties {start date:start_date, end date:end_date, summary:sum, location:loc} at end of events of calendar "Todo"
end repeat
结束重复