}
- // Process the CLASS.
+ // Process the CLASS value.
if (ClassData.size() > 0){
}
+ // Process the CREATED value.
+
+ if (DateTimeCreatedData.size() > 0){
+
+ if (DateTimeCreatedTokens.size() > 0){
+
+ DataLine += "CREATED;";
+ DataLine += DateTimeCreatedTokens;
+
+ } else {
+
+ DataLine += "CREATED";
+
+ }
+
+ DataLine += ":";
+ DataLine += DateTimeCreatedData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the DESCRIPTION values. Write out the
+ // first DESCRPITION only as per RFC5545 specifcation.
+
+ if (DescriptionList.size() > 0){
+
+ DataLine += "DESCRIPTION";
+
+ if (DescriptionListAltRep[0].size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += DescriptionListAltRep[0];
+ DataLine += "\"";
+
+ }
+
+ if (DescriptionListLanguage[0].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += DescriptionListLanguage[0];
+
+ }
+
+ if (DescriptionListTokens[0].size() > 0){
+
+ DataLine += ";";
+ DataLine += DescriptionListTokens[0];
+
+ }
+
+ DataLine += ":";
+ DataLine += DescriptionList[0];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the GEO value.
+
+ if (GeographicData.size() > 0){
+
+ if (GeographicTokens.size() > 0){
+
+ DataLine += "GEO;";
+ DataLine += GeographicTokens;
+
+ } else {
+
+ DataLine += "GEO";
+
+ }
+
+ DataLine += ":";
+ DataLine += GeographicData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the LAST-MODIFIED value.
+
+ if (LastModifiedData.size() > 0){
+
+ if (LastModifiedTokens.size() > 0){
+
+ DataLine += "LAST-MODIFIED;";
+ DataLine += LastModifiedTokens;
+
+ } else {
+
+ DataLine += "LAST-MODIFIED";
+
+ }
+
+ DataLine += ":";
+ DataLine += LastModifiedData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the LOCATION value.
+
+ if (LocationData.size() > 0){
+
+ DataLine += "LOCATION";
+
+ if (LocationDataAltRep.size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += LocationDataAltRep;
+ DataLine += "\"";
+
+ }
+
+ if (LocationDataLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += LocationDataLanguage;
+
+ }
+
+ if (LocationDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += LocationDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += LocationData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the ORGANIZER value.
+
+ if (OrganiserData.size() > 0){
+
+ DataLine += "ORGANIZER";
+
+ if (OrganiserDataCommonName.size() > 0){
+
+ DataLine += ";CN=";
+ DataLine += OrganiserDataCommonName;
+
+ }
+
+ if (OrganiserDataDirectoryEntry.size() > 0){
+
+ DataLine += ";DIR=\"";
+ DataLine += OrganiserDataDirectoryEntry;
+ DataLine += "\"";
+
+ }
+
+ if (OrganiserDataSentByParam.size() > 0){
+
+ DataLine += ";SENT-BY=\"";
+ DataLine += OrganiserDataSentByParam;
+ DataLine += "\"";
+
+ }
+
+ if (OrganiserDataLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += OrganiserDataLanguage;
+
+ }
+
+ if (OrganiserDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += OrganiserDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += OrganiserData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the PRIORITY value.
+
+ if (PriorityData > -1 && PriorityData < 10){
+
+ DataLine += "PRIORITY";
+
+ if (PriorityTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += PriorityTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += to_string(PriorityData);
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the SEQUENCE value.
+
+ if (SequenceData > -1 && SequenceData < 10){
+
+ DataLine += "SEQUENCE";
+
+ if (SequenceTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += SequenceTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += to_string(SequenceData);
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the STATUS value.
+
+ if (StatusData.size() > 0){
+
+ DataLine += "STATUS";
+
+ if (StatusLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += StatusLanguage;
+
+ }
+
+ if (StatusTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += StatusTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += StatusData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the TRANSP value.
+
+ if (TimeTransparencyData.size() > 0){
+
+ DataLine += "TRANSP";
+
+ if (TimeTransparencyDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += TimeTransparencyDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += TimeTransparencyData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the URL value.
+
+ if (URLData.size() > 0){
+
+ DataLine += "URL";
+
+ if (URLDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += URLDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += URLData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the RECURRENCE-ID value.
+
+ if (RecurranceIDData.size() > 0){
+
+ DataLine += "RECURRENCE-ID";
+
+ if (RecurranceIDDataTimeZoneParam.size() > 0){
+
+ DataLine += ";TZID=";
+ DataLine += RecurranceIDDataTimeZoneParam;
+
+ }
+
+ if (RecurranceIDDataRangeParam.size() > 0){
+
+ DataLine += ";RANGE=";
+ DataLine += RecurranceIDDataRangeParam;
+
+ }
+
+ if (RecurranceIDDataValue.size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += RecurranceIDDataValue;
+
+ }
+
+ if (RecurranceIDDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += RecurranceIDDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += RecurranceIDData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the DURATION value.
+
+ if (DurationData.size() > 0){
+
+ DataLine += "DURATION";
+
+ if (DurationDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += DurationDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += DurationData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the RRULE value.
+
+ if (RecurranceRuleData.size() > 0){
+
+ DataLine += "RRULE";
+
+ if (RecurranceRuleDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += RecurranceRuleDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += RecurranceRuleData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the ATTACH values.
+
+ if (AttachList.size() > 0){
+
+ for (int AttachListSeek = 0; AttachListSeek < AttachList.size();
+ AttachListSeek++){
+
+ DataLine += "ATTACH";
+
+ if (AttachListFormatType[AttachListSeek].size() > 0){
+
+ DataLine += ";FMTTYPE=";
+ DataLine += AttachListFormatType[AttachListSeek];
+
+ }
+
+ if (AttachListValue[AttachListSeek].size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += AttachListValue[AttachListSeek];
+
+ }
+
+ if (AttachListEncoding[AttachListSeek].size() > 0){
+
+ DataLine += ";ENCODING=";
+ DataLine += AttachListEncoding[AttachListSeek];
+
+ }
+
+ if (AttachListTokens[AttachListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += AttachListTokens[AttachListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += AttachList[AttachListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the ATTENDEE value.
+
+ if (AttendeeList.size() > 0){
+
+ for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
+ AttendeeListSeek++){
+
+ DataLine += "ATTENDEE";
+
+ if (AttendeeListMember[AttendeeListSeek].size() > 0){
+
+ DataLine += ";MEMBER=\"";
+ DataLine += AttendeeListMember[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DELEGATED-FROM=\"";
+ DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DELEGATED-TO=\"";
+ DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListRole[AttendeeListSeek].size() > 0){
+
+ DataLine += ";ROLE=";
+ DataLine += AttendeeListRole[AttendeeListSeek];
+
+ }
+
+ if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
+
+ DataLine += ";RSVP=";
+ DataLine += AttendeeListRSVP[AttendeeListSeek];
+
+ }
+
+ if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DIR=\"";
+ DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
+
+ DataLine += ";SENT-BY=\"";
+ DataLine += AttendeeListSentBy[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
+
+ DataLine += ";CN=\"";
+ DataLine += AttendeeListCommonName[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
+
+ DataLine += ";CUTYPE=";
+ DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
+
+ }
+
+ if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
+
+ DataLine += ";PARTSTAT=";
+ DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
+
+ }
+
+ if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += AttendeeListLanguage[AttendeeListSeek];
+
+ }
+
+ if (AttendeeListTokens[AttendeeListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += AttendeeListTokens[AttendeeListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += AttendeeList[AttendeeListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the CATEGORIES value.
+
+ if (CategoriesList.size() > 0){
+
+ for (int CategoriesListSeek = 0; CategoriesListSeek < CategoriesList.size();
+ CategoriesListSeek++){
+
+ DataLine += "CATEGORIES";
+
+ if (CategoriesListLanguage[CategoriesListSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += CategoriesListLanguage[CategoriesListSeek];
+
+ }
+
+ if (CategoriesListTokens[CategoriesListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += CategoriesListTokens[CategoriesListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += CategoriesList[CategoriesListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the COMMENT value.
+
+ if (CommentList.size() > 0){
+
+ for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
+ CommentListSeek++){
+
+ DataLine += "COMMENT";
+
+ if (CommentListAltRep[CommentListSeek].size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += CommentListAltRep[CommentListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CommentListLanguage[CommentListSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += CommentListLanguage[CommentListSeek];
+
+ }
+
+ if (CommentListTokens[CommentListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += CommentListTokens[CommentListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += CommentList[CommentListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the CONTACT value.
+
+ if (ContactList.size() > 0){
+
+ for (int ContactListSeek = 0; ContactListSeek < ContactList.size();
+ ContactListSeek++){
+
+ DataLine += "CONTACT";
+
+ if (ContactListAltRep[ContactListSeek].size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += ContactListAltRep[ContactListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (ContactListLanguage[ContactListSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += ContactListLanguage[ContactListSeek];
+
+ }
+
+ if (ContactListTokens[ContactListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += ContactListTokens[ContactListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += ContactList[ContactListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the EXDATE value.
+
+ if (ExcludeDateData.size() > 0){
+
+ for (int ExcludeDateDataSeek = 0; ExcludeDateDataSeek < ExcludeDateData.size();
+ ExcludeDateDataSeek++){
+
+ DataLine += "EXDATE";
+
+ if (ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek].size() > 0){
+
+ DataLine += ";TZID=";
+ DataLine += ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek];
+
+ }
+
+ if (ExcludeDateDataValue[ExcludeDateDataSeek].size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += ExcludeDateDataValue[ExcludeDateDataSeek];
+
+ }
+
+ if (ExcludeDateDataTokens[ExcludeDateDataSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += ExcludeDateDataTokens[ExcludeDateDataSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += ExcludeDateData[ExcludeDateDataSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the REQUEST-STATUS value.
+
+ if (RequestStatusData.size() > 0){
+
+ for (int RequestStatusDataSeek = 0; RequestStatusDataSeek < RequestStatusData.size();
+ RequestStatusDataSeek++){
+
+ DataLine += "REQUEST-STATUS";
+
+ if (RequestStatusLanguage[RequestStatusDataSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += RequestStatusLanguage[RequestStatusDataSeek];
+
+ }
+
+ if (RequestStatusTokens[RequestStatusDataSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += RequestStatusTokens[RequestStatusDataSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += RequestStatusData[RequestStatusDataSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RELATED-TO value.
+
+ if (RelatedToData.size() > 0){
+
+ for (int RequestToDataSeek = 0; RequestToDataSeek < RelatedToData.size();
+ RequestToDataSeek++){
+
+ DataLine += "RELATED-TO";
+
+ if (RelatedToDataRelationType[RequestToDataSeek].size() > 0){
+
+ DataLine += ";RELTYPE=";
+ DataLine += RelatedToDataRelationType[RequestToDataSeek];
+
+ }
+
+ if (RelatedToDataTokens[RequestToDataSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += RelatedToDataTokens[RequestToDataSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += RelatedToData[RequestToDataSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RESOURCES value.
+
+ if (ResourcesData.size() > 0){
+
+ for (int ResourcesDataSeek = 0; ResourcesDataSeek < ResourcesData.size();
+ ResourcesDataSeek++){
+
+ DataLine += "RESOURCES";
+
+ if (ResourcesDataAltRep[ResourcesDataSeek].size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += ResourcesDataAltRep[ResourcesDataSeek];
+ DataLine += "\"";
+
+ }
+
+ if (ResourcesDataLanguage[ResourcesDataSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += ResourcesDataLanguage[ResourcesDataSeek];
+
+ }
+
+ if (ResourcesDataTokens[ResourcesDataSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += ResourcesDataTokens[ResourcesDataSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += ResourcesData[ResourcesDataSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RDATE value.
+
+ if (RecurranceDateData.size() > 0){
+
+ for (int RecurranceDateDataSeek = 0; RecurranceDateDataSeek < RecurranceDateData.size();
+ RecurranceDateDataSeek++){
+
+ DataLine += "RDATE";
+
+ if (RecurranceDateDataValue[RecurranceDateDataSeek].size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += RecurranceDateDataValue[RecurranceDateDataSeek];
+
+ }
+
+ if (RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek].size() > 0){
+
+ DataLine += ";TZID=";
+ DataLine += RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek];
+
+ }
+
+ if (RecurranceDateDataTokens[RecurranceDateDataSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += RecurranceDateDataTokens[RecurranceDateDataSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += RecurranceDateData[RecurranceDateDataSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the VALARMS.
+
+ if (CalendarAlarmData.size() > 0){
+
+ for (int CalendarAlarmDataSeek = 0; CalendarAlarmDataSeek < CalendarAlarmData.size();
+ CalendarAlarmDataSeek++){
+
+ *SaveData += "BEGIN:VALARM\n";
+
+ // Process the ACTION VALARM value.
+
+ DataLine += "ACTION";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmAction;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ // Process the TRIGGER VALARM value.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerData.size() > 0){
+
+ DataLine += "TRIGGER";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated.size() > 0){
+
+ DataLine += ";RELATED=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated;
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue.size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue;
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the DURATION VALARM value.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DurationData.size() > 0){
+
+ DataLine += "DURATION";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the DESCRIPTION VALARM value.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData.size() > 0){
+
+ DataLine += "DESCRIPTION";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep.size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep;
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage;
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the SUMMARY VALARM value.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryData.size() > 0){
+
+ DataLine += "SUMMARY";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep.size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep;
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage;
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the REPEAT VALARM value.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatData.size() > 0){
+
+ DataLine += "REPEAT";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the ATTENDEE VALARM values.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size() > 0){
+
+ for (int AttendeeListSeek = 0; AttendeeListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size();
+ AttendeeListSeek++){
+
+ DataLine += "ATTENDEE";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek].size() > 0){
+
+ DataLine += ";MEMBER=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DELEGATED-FROM=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DELEGATED-TO=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek].size() > 0){
+
+ DataLine += ";ROLE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek].size() > 0){
+
+ DataLine += ";RSVP=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
+
+ DataLine += ";DIR=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek].size() > 0){
+
+ DataLine += ";SENT-BY=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek].size() > 0){
+
+ DataLine += ";CN=\"";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek];
+ DataLine += "\"";
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
+
+ DataLine += ";CUTYPE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
+
+ DataLine += ";PARTSTAT=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek].size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList[AttendeeListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the ATTACH VALARM values.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size() > 0){
+
+ for (int AttachListSeek = 0; AttachListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size();
+ AttachListSeek++){
+
+ DataLine += "ATTACH";
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek].size() > 0){
+
+ DataLine += ";FMTTYPE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek].size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek].size() > 0){
+
+ DataLine += ";ENCODING=";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek];
+
+ }
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek].size() > 0){
+
+ DataLine += ";";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek];
+
+ }
+
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachList[AttachListSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the X-Token VALARM values.
+
+ if (CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size() > 0){
+
+ for (int XTokenSeek = 0; XTokenSeek < CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size();
+ XTokenSeek++){
+
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensDataTokens[XTokenSeek];
+ DataLine += ":";
+ DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensData[XTokenSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
+ *SaveData += "END:VALARM\n";
+
+ }
+
+ }
+
+ // Process the X-Token values.
+
+ if (XTokensData.size() > 0){
+
+ for (int XTokenSeek = 0; XTokenSeek < XTokensData.size();
+ XTokenSeek++){
+
+ DataLine += XTokensDataTokens[XTokenSeek];
+ DataLine += ":";
+ DataLine += XTokensData[XTokenSeek];
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ }
+
*SaveData += "END:VEVENT\n";
}
\ No newline at end of file