1

これを解読するのに苦労しています。ICS ファイルを AppleScript に読み込んだので、それを解析する必要があります。これは私のコードです

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

データは正常に読み込まれますが、解析する必要があります。イベントごとに、スクリプトで BEGIN:VEVENT と END:VEVENT の間のデータを読み取るようにします。これを行う方法がわかりませんが、 foreach ループか何かで?

これは私の試験を含むカレンダーのサンプルです。

開始:VCALENDAR
バージョン:2.0
X-WR-CALNAME:エクサメナー
X-WR-CALDESC:
X-APPLE-CALENDAR-COLOR:#CC2B23FF
開始:VEVENT
UID:C96EF18C-5D17-4170-8C67-832B7F90B464
概要:TK 1100 エクサメン
シーケンス:0
位置:
DTSTART;値=日付:20111213
DTEND;値=日付:20111214
END:VEVENT
開始:VEVENT
UID:BDBE0B4B-FF3D-4245-B23F-F1BF25F65998
概要:DB 1100 エクサメン
シーケンス:0
位置:
DTSTART;値=DATE:20111006
DTEND;VALUE=日付:20111007
END:VEVENT
開始:VEVENT
UID:21261AF0-FDA7-432B-B513-CC3A9C04393D
概要:PG 1100 エクサメン
シーケンス:0
位置:
DTSTART;値=日付:20111216
DTEND;VALUE=日付:20111217
END:VEVENT
END:Vカレンダー

これは学校とは関係ありません。データを解析してデスクトップ (GeekTool) で表示したいだけです。

4

1 に答える 1

0

テキスト項目の区切り記号を使用する必要があります。これを試してみて、それがどのように機能するかを理解できるかどうかを確認してください。

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
于 2011-11-07T17:26:15.607 に答える