繁体   English   中英

使用AppleScript解析日历(ICS)

[英]Parse calendar (ICS) with AppleScript

Iam很难破解。 我已经将ICS文件读入AppleScript,并且需要对其进行解析。 这是我的代码

set calURL to "https://url.to.ics"
set calenderData to do shell script "curl " & calURL

数据读得很好,但是我需要解析它。 我希望脚本为每个事件读取BEGIN:VEVENT和END:VEVENT之间的数据。 我不确定如何执行此操作,但是有一个foreach循环之类的东西?

这是包含我的考试的示例日历。

BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:Eksamener
X-WR-CALDESC:
X-APPLE-CALENDAR-COLOR:#CC2B23FF
BEGIN:VEVENT
UID:C96EF18C-5D17-4170-8C67-832B7F90B464
SUMMARY:TK 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111213
DTEND;VALUE=DATE:20111214
END:VEVENT
BEGIN:VEVENT
UID:BDBE0B4B-FF3D-4245-B23F-F1BF25F65998
SUMMARY:DB 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111006
DTEND;VALUE=DATE:20111007
END:VEVENT
BEGIN:VEVENT
UID:21261AF0-FDA7-432B-B513-CC3A9C04393D
SUMMARY:PG 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111216
DTEND;VALUE=DATE:20111217
END:VEVENT
END:VCALENDAR

这与学校无关,我只想解析数据以在桌面(GeekTool)上查看它。

您需要使用文本项定界符。 试试看,看看是否能理解它的工作原理。

set theData to "BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:Eksamener
X-WR-CALDESC:
X-APPLE-CALENDAR-COLOR:#CC2B23FF
BEGIN:VEVENT
UID:C96EF18C-5D17-4170-8C67-832B7F90B464
SUMMARY:TK 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111213
DTEND;VALUE=DATE:20111214
END:VEVENT
BEGIN:VEVENT
UID:BDBE0B4B-FF3D-4245-B23F-F1BF25F65998
SUMMARY:DB 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111006
DTEND;VALUE=DATE:20111007
END:VEVENT
BEGIN:VEVENT
UID:21261AF0-FDA7-432B-B513-CC3A9C04393D
SUMMARY:PG 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111216
DTEND;VALUE=DATE:20111217
END:VEVENT
END:VCALENDAR"

set text item delimiters to "BEGIN:VEVENT"
set theEvents to text items of theData
set text item delimiters to "END:VEVENT"

set allEvents to {}
repeat with i from 2 to count of theEvents
    set theEvent to item i of theEvents
    set trimmedEvent to text item 1 of theEvent
    set end of allEvents to text 2 thru -2 of trimmedEvent -- you can do something here instead of collecting them in the list
end repeat
set text item delimiters to ""
return allEvents

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM