开发者

Reading iCal info from file to make iCal event

开发者 https://www.devze.com 2023-03-05 02:08 出处:网络
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

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

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

Running this code gives me an error

Reading iCal info from file to make iCal event

Why is this error?


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

end repeat

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号