}
+ // Process the CLASS value.
+
+ if (ClassData.size() > 0){
+
+ if (ClassDataTokens.size() > 0){
+
+ DataLine += "CLASS;";
+ DataLine += ClassDataTokens;
+
+ } else {
+
+ DataLine += "CLASS";
+
+ }
+
+ DataLine += ":";
+ DataLine += ClassData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // Process the COMPLETED value.
+
+ if (CompletedData.size() > 0){
+
+ if (CompletedDataTokens.size() > 0){
+
+ DataLine += "COMPLETED;";
+ DataLine += CompletedDataTokens;
+
+ } else {
+
+ DataLine += "COMPLETED";
+
+ }
+
+ DataLine += ":";
+ DataLine += CompletedData;
+ DataLine += "\n";
+
+ DataLineProcessed = OutputText(&DataLine);
+
+ *SaveData += DataLineProcessed;
+
+ DataLine.clear();
+ DataLineProcessed.clear();
+
+ }
+
+ // 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 DTSTART.
+
+ if (DateTimeStartData.size() > 0){
+
+ DataLine += "DTSTART";
+
+ if (DateTimeStartDataValue.size() > 0){
+
+ DataLine += ";VALUE=";
+ DataLine += DateTimeStartDataValue;
+
+ }
+
+ if (DateTimeStartDataTimeZoneID.size() > 0){
+
+ DataLine += ";TZID=";
+ DataLine += DateTimeStartDataTimeZoneID;
+
+ }
+
+ if (DateTimeStartDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += DateTimeStartDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += DateTimeStartData;
+ 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 PERCENT-COMPLETE value.
+
+ if (PercentCompleteData.size() > 0){
+
+ if (PercentCompleteTokens.size() > 0){
+
+ DataLine += "PERCENT-COMPLETE;";
+ DataLine += PercentCompleteTokens;
+
+ } else {
+
+ DataLine += "PERCENT-COMPLETE";
+
+ }
+
+ DataLine += ":";
+ DataLine += PercentCompleteData;
+ 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 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 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 SUMMARY.
+
+ if (SummaryData.size() > 0){
+
+ DataLine += "SUMMARY";
+
+ if (SummaryDataAltRep.size() > 0){
+
+ DataLine += ";ALTREP=\"";
+ DataLine += SummaryDataAltRep;
+ DataLine += "\"";
+
+ }
+
+ if (SummaryDataLanguage.size() > 0){
+
+ DataLine += ";LANGUAGE=";
+ DataLine += SummaryDataLanguage;
+
+ }
+
+ if (SummaryDataTokens.size() > 0){
+
+ DataLine += ";";
+ DataLine += SummaryDataTokens;
+
+ }
+
+ DataLine += ":";
+ DataLine += SummaryData;
+ 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();
+
+ }
+
*SaveData += "END:VTODO\n";
}
\ No newline at end of file