加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows Phone 7 – iCal Generator – C#

发布时间:2020-12-14 02:51:57 所属栏目:Windows 来源:网络整理
导读:我需要从从设备获取的约会生成iCal字符串. Windows Phone 7是否支持从约会生成iCal的库? 我尝试过DDay.iCal,但它不适用于Windows Phone 7. 解决方法 我没有找到特定于Windows Phone 7的库,但编写自己的类来生成iCal文件应该不会太难,因为毕竟iCal只是文本.
我需要从从设备获取的约会生成iCal字符串. Windows Phone 7是否支持从约会生成iCal的库?

我尝试过DDay.iCal,但它不适用于Windows Phone 7.

解决方法

我没有找到特定于Windows Phone 7的库,但编写自己的类来生成iCal文件应该不会太难,因为毕竟iCal只是文本. The RFC is quite a dense read,但使用一些在线参考文献 like this one并查看一些示例iCal文件应该足以开始.以维基百科的iCal文件为例,例如:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR

所以请注意你BEGIN和END一个VCALENDAR,以及其中的一个VEVENT,它有一些必需的字段(比如UID).唯一需要注意的是规范要求分解超过75个八位字节的行,因此您可以使用this stack overflow question中的此方法来处理长文本的字段:

Private Function RFC2445TextField(ByVal LongText As String) As String

     LongText = LongText.Replace("","")
     LongText = LongText.Replace(";",";")
     LongText = LongText.Replace(",",",")


     Dim sBuilder As New StringBuilder
     Dim charArray() As Char = LongText.ToCharArray

     For i = 1 To charArray.Length
         sBuilder.Append(charArray(i - 1))
         If i Mod 74 = 0 Then sBuilder.Append(vbCrLf & " ")
     Next

     Return sBuilder.ToString

 End Function

该函数基本上转义所有必需的转义字符,并每74个字符插入一个换行符/空格.

祝你好运,玩得开心!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读