kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Otto
Otto
Вопрос

Создание файлов iCal в c#

Я'ищу хороший метод генерации файла iCalendar (*.ics) в c# (asp.net). Я нашел несколько ресурсов, но в них отсутствует поддержка полей quoted-printable - полей с возвратом каретки и переводом строки.

Например, если поле description закодировано неправильно, то отобразится только первая строка, что может привести к повреждению остальной информации в файле *.ics.

Я'ищу существующие классы, которые могут генерировать *.ics файлы и/или класс, который может генерировать кавычки-печатные поля.

76 2008-08-14T04:07:36+00:00 9
Joel Coehoorn
Joel Coehoorn
Редактировал вопрос 18-го ноября 2011 в 5:14
Программирование
asp.net
c#
icalendar
 DevelopingChris
DevelopingChris
14-го августа 2008 в 4:09
2008-08-14T04:09:48+00:00
Дополнительно
Источник
Редактировать
#8414613

Я использую DDay.Ical, это хорошая штука. Имеет возможность открыть икальный файл и получить его данные в красивой объектной модели. Написано, что это бета-версия, но у нас она работает отлично.

Редактировать ноябрь 2016 г.

Эта библиотека была устаревшей, но была подхвачена и переиздана как iCal.NET другим разработчиком.

Заметки о релизе: rianjs.net/2016/07/dday-ical-is-now-ical-net

Источник на GitHub: github.com/rianjs/ical.net

 jocull
jocull
Редактировал ответ 1-го ноября 2016 в 8:28
73
0
Ian Oxley
Ian Oxley
20-го августа 2008 в 8:02
2008-08-20T08:02:15+00:00
Дополнительно
Источник
Редактировать
#8414616

Самым легким путем I' ve, найденный выполнения этого, к повышению, которое Ваш HTML, используя микроформатирует.

Если you' ре, надеющееся производить iCalendar файлы тогда, которые Вы могли использовать hCalendar микроформат тогда, включает связь, такую как ' Добавьте к Calendar' это указывает на:

http://feeds.technorati.com/events / [Ваш page' s полный URL включая http://]

Страница Technorati тогда разбирает Вашу страницу, извлекает hCalendar информацию и посылает iCalendar файл клиенту.

12
0
 atmarx
atmarx
21-го января 2011 в 9:15
2011-01-21T21:15:57+00:00
Дополнительно
Источник
Редактировать
#8414619

Я написал функцию прокладки, чтобы обращаться с этим. It' s главным образом соответствующий - единственное зависание - то, что первая линия - 74 знака вместо 75 (эти 74 должен обращаться с пространством на последующих линиях)...

 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

Я использую это для резюме и описания на нашей подаче ICS. Просто накормите линию областью уже предварительно бывшей на рассмотрении (например, LongText = " SUMMARY:Event Title"). Пока Вы устанавливаете кэширование прилично долго, it' s не слишком дорогой из операции.

3
0
 azheglov
azheglov
15-го мая 2009 в 7:11
2009-05-15T19:11:56+00:00
Дополнительно
Источник
Редактировать
#8414618

iCal (ical 2.0) и указал - пригодный для печатания don' t сочетаются.

Указанный - пригодный для печатания используется много в vCal (vCal 1.0), чтобы представлять непригодные для печатания знаки, например, разрывы линии (=0D=0A). Дефолт vCal кодирование составляет 7 битов, поэтому иногда Вы должны использовать указанный - пригодный для печатания, чтобы представлять знаки неASCII (Вы можете отвергнуть кодирование по умолчанию, но другая vCal-послушная сторона сообщения не обязана понимать его.)

В iCal , специальные знаки представлены, используя спасение, например, ' \n'. кодирование по умолчанию - UTF-8, все соответствующие iCal стороны должны поддержать его, и это делает указанным - пригодный для печатания абсолютно ненужный в iCal 2.0 (и vCard 3.0, в этом отношении).

Вы, возможно, должны поддержать своего клиента/заинтересованную сторону, чтобы разъяснить требования. Кажется, есть беспорядок между vCal и iCal.

2
0
Анонимный пользователь
15-го мая 2009 в 6:47
2009-05-15T18:47:52+00:00
Дополнительно
Источник
Редактировать
#8414617

Согласно RFC-2445, области комментария и описания - ТЕКСТ. Правила для испытательной области: [1] Одна линия в Текстовом поле не должна превышать 75 октетов. [2] Обертывание достигнуто, вставив CRLF, сопровождаемый пробелом. [3] Есть несколько знаков, которые должны быть закодированы включая (обратный разрез); (точка с запятой), (запятая) и newline. Используя (обратный разрез), поскольку разделитель дает \\; \, \n

Пример: следующее - пример собственности с отформатированным линия прерывает стоимость недвижимости:

 DESCRIPTION:Meeting to provide technical review for "Phoenix"
   design.\n Happy Face Conference Room. Phoenix design team
   MUST attend this meeting.\n RSVP to team leader.
1
0
 slolife
slolife
19-го августа 2008 в 6:51
2008-08-19T18:51:07+00:00
Дополнительно
Источник
Редактировать
#8414615

Посмотрите http://www.codeproject.com/KB/vb/vcalendar.aspx

Он не обрабатывает поля quoted-printable, как вы просили, но остальной код там есть и может быть изменен.

1
0
Lance Fisher
Lance Fisher
14-го августа 2008 в 6:10
2008-08-14T06:10:00+00:00
Дополнительно
Источник
Редактировать
#8414614

iCal может быть сложным, поэтому я рекомендую использовать библиотеку. DDay - хорошее бесплатное решение. Насколько я знаю, у него нет полной поддержки повторяющихся событий, но в остальном он выглядит очень хорошо. Определенно протестируйте календари с несколькими клиентами.

0
0
Manpreet  Singh Dhillon
Manpreet Singh Dhillon
9-го мая 2017 в 6:19
2017-05-09T18:19:20+00:00
Дополнительно
Источник
Редактировать
#8414620

я знаю, что слишком поздно, но это может помочь другим. в моем случае я написал следующий текстовый файл с .ics расширением

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Calendly//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTAMP:20170509T164109Z
UID:your id-11273661
DTSTART:20170509T190000Z
DTEND:20170509T191500Z
CLASS:PRIVATE
DESCRIPTION:Event Name: 15 Minute Meeting\nDate & Time: 03:00pm - 03:15pm (
 Eastern Time - US & Canada) on Tuesday\, May 9\, 2017\n\nBest Phone Number
  To Reach You :: xxxxxxxxx\n\nany "link": https://wwww.yahoo.com\n\n
SUMMARY:15 Minute Meeting
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

это работало на меня.

0
0
 VDWWD
VDWWD
19-го октября 2017 в 7:23
2017-10-19T19:23:28+00:00
Дополнительно
Источник
Редактировать
#8414621

I' m пропавшие без вести примера с таможенными часовыми поясами. Так здесь отрывок, которые показывают, как Вы можете установить часовой пояс в ics (и послать его в браузер в asp.net).

//set a couple of variables for demo purposes
DateTime IcsDateStart = DateTime.Now.AddDays(2);
DateTime IcsDateEnd = IcsDateStart.AddMinutes(90);
string IcsSummary = "ASP.Net demo snippet";
string IcsLocation = "Amsterdam (Netherlands)";
string IcsDescription = @"This snippes show you how to create a calendar item file (.ics) in ASP.NET.\nMay it be useful for you.";
string IcsFileName = "MyCalendarFile";

//create a new stringbuilder instance
StringBuilder sb = new StringBuilder();

//begin the calendar item
sb.AppendLine("BEGIN:VCALENDAR");
sb.AppendLine("VERSION:2.0");
sb.AppendLine("PRODID:stackoverflow.com");
sb.AppendLine("CALSCALE:GREGORIAN");
sb.AppendLine("METHOD:PUBLISH");

//create a custom time zone if needed, TZID to be used in the event itself
sb.AppendLine("BEGIN:VTIMEZONE");
sb.AppendLine("TZID:Europe/Amsterdam");
sb.AppendLine("BEGIN:STANDARD");
sb.AppendLine("TZOFFSETTO:+0100");
sb.AppendLine("TZOFFSETFROM:+0100");
sb.AppendLine("END:STANDARD");
sb.AppendLine("END:VTIMEZONE");

//add the event
sb.AppendLine("BEGIN:VEVENT");

//with a time zone specified
sb.AppendLine("DTSTART;TZID=Europe/Amsterdam:" + IcsDateStart.ToString("yyyyMMddTHHmm00"));
sb.AppendLine("DTEND;TZID=Europe/Amsterdam:" + IcsDateEnd.ToString("yyyyMMddTHHmm00"));

//or without a time zone
//sb.AppendLine("DTSTART:" + IcsDateStart.ToString("yyyyMMddTHHmm00"));
//sb.AppendLine("DTEND:" + IcsDateEnd.ToString("yyyyMMddTHHmm00"));

//contents of the calendar item
sb.AppendLine("SUMMARY:" + IcsSummary + "");
sb.AppendLine("LOCATION:" + IcsLocation + "");
sb.AppendLine("DESCRIPTION:" + IcsDescription + "");
sb.AppendLine("PRIORITY:3");
sb.AppendLine("END:VEVENT");

//close calendar item
sb.AppendLine("END:VCALENDAR");

//create a string from the stringbuilder
string CalendarItemAsString = sb.ToString();

//send the ics file to the browser
Response.ClearHeaders();
Response.Clear();
Response.Buffer = true;
Response.ContentType = "text/calendar";
Response.AddHeader("content-length", CalendarItemAsString.Length.ToString());
Response.AddHeader("content-disposition", "attachment; filename=\"" + IcsFileName + ".ics\"");
Response.Write(CalendarItemAsString);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
0
0
Похожие сообщества 16
DotNetRuChat
DotNetRuChat
6 630 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
Microsoft Stack Jobs
Microsoft Stack Jobs
2 408 пользователей
Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks
Открыть telegram
С#
С#
2 330 пользователей
Стараемся не флудить. Пишем по делу. Правила: https://t.me/professorweb/430450 Для флуда @svoboda_obsh
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
CODE BLOG / C#
CODE BLOG / C#
1 763 пользователей
Чат для .NET разработчиков и C# программистов. По всем вопросам: @shwanoff Youtube-канал: https://youtube.com/codeblog Основной канал: @codeblog Вконтакте: https://vk.com/codeblog Правила: https://t.me/codeblog_csharp/246972 Вакансии по тегу #work
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 17 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
ID
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией