}
+ // 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();
+
+ }
+
+ *SaveData += "END:VALARM\n";
+
+ }
+
+ }
+
*SaveData += "END:VEVENT\n";
}
\ No newline at end of file