本文介绍了从文件中读取的iCal信息,使iCal事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含iCal事件信息的文件(/test.txt)。
I have a file (/test.txt) that contains iCal event info.
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的。
And this is the applescript to read this file to make iCal event.
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
运行此code给我一个错误
Running this code gives me an error
这是为什么错误?
推荐答案
首先有两个问题,则需要在循环之后添加的最后一个事件,那么你试图设置的iCal告诉块不工作里面的日期出于某种原因,所以我把它从告诉块我也提高了codeA位
you had two problems first you need to add the last event after you loop then you were trying to set the date inside the ical tell block which doesn't work for some reason so I took it out of the tell block i also improved the code a bit
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
结束重复
这篇关于从文件中读取的iCal信息,使iCal事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!