Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added VALARM properties for saving data from a CalendarTaskObject.
[xestiacalendar/.git] / source / objects / calendartask / CalendarTask-Save.cpp
1 #include "CalendarTask.h"
3 using namespace std;
5 void CalendarTaskObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VTODO\n";
11         
12         // Process the UID.
13         
14         if (UniqueID.size() > 0){
15                 
16                 if (UniqueIDTokens.size() > 0){
17                 
18                         DataLine += "UID;";
19                         DataLine += UniqueIDTokens;
20                         
21                 } else {
23                         DataLine += "UID";
24                         
25                 }
27                 DataLine += ":";
28                 DataLine += UniqueID;
29                 DataLine += "\n";
30                 
31                 DataLineProcessed = OutputText(&DataLine);
32                 
33                 *SaveData += DataLineProcessed;
34                 
35                 DataLine.clear();
36                 DataLineProcessed.clear();
37                 
38         }
39         
40         // Process the DTSTAMP.
41         
42         if (DateTimeStampData.size() > 0){
43                 
44                 if (DateTimeStampTokens.size() > 0){
45                 
46                         DataLine += "DTSTAMP;";
47                         DataLine += DateTimeStampTokens;
48                         
49                 } else {
51                         DataLine += "DTSTAMP";
52                         
53                 }
55                 DataLine += ":";
56                 DataLine += DateTimeStampData;
57                 DataLine += "\n";
58                 
59                 DataLineProcessed = OutputText(&DataLine);
60                 
61                 *SaveData += DataLineProcessed;
62                 
63                 DataLine.clear();
64                 DataLineProcessed.clear();
65                 
66         }
67         
68         // Process the CLASS value.
69         
70         if (ClassData.size() > 0){
71                 
72                 if (ClassDataTokens.size() > 0){
73                 
74                         DataLine += "CLASS;";
75                         DataLine += ClassDataTokens;
76                         
77                 } else {
79                         DataLine += "CLASS";
80                         
81                 }
83                 DataLine += ":";
84                 DataLine += ClassData;
85                 DataLine += "\n";
86                 
87                 DataLineProcessed = OutputText(&DataLine);
88                 
89                 *SaveData += DataLineProcessed;
90                 
91                 DataLine.clear();
92                 DataLineProcessed.clear();
93                 
94         }
95         
96         // Process the COMPLETED value.
97         
98         if (CompletedData.size() > 0){
99                 
100                 if (CompletedDataTokens.size() > 0){
101                 
102                         DataLine += "COMPLETED;";
103                         DataLine += CompletedDataTokens;
104                         
105                 } else {
107                         DataLine += "COMPLETED";
108                         
109                 }
111                 DataLine += ":";
112                 DataLine += CompletedData;
113                 DataLine += "\n";
114                 
115                 DataLineProcessed = OutputText(&DataLine);
116                 
117                 *SaveData += DataLineProcessed;
118                 
119                 DataLine.clear();
120                 DataLineProcessed.clear();
121                 
122         }
124         // Process the CREATED value.
125         
126         if (DateTimeCreatedData.size() > 0){
127                 
128                 if (DateTimeCreatedTokens.size() > 0){
129                 
130                         DataLine += "CREATED;";
131                         DataLine += DateTimeCreatedTokens;
132                         
133                 } else {
135                         DataLine += "CREATED";
136                         
137                 }
139                 DataLine += ":";
140                 DataLine += DateTimeCreatedData;
141                 DataLine += "\n";
142                 
143                 DataLineProcessed = OutputText(&DataLine);
144                 
145                 *SaveData += DataLineProcessed;
146                 
147                 DataLine.clear();
148                 DataLineProcessed.clear();
149                 
150         }
151         
152         // Process the DESCRIPTION values. Write out the
153         // first DESCRPITION only as per RFC5545 specifcation.
154         
155         if (DescriptionList.size() > 0){
156                 
157                 DataLine += "DESCRIPTION";
158                 
159                 if (DescriptionListAltRep[0].size() > 0){
160                 
161                         DataLine += ";ALTREP=\"";
162                         DataLine += DescriptionListAltRep[0];
163                         DataLine += "\"";
164                         
165                 }
166                 
167                 if (DescriptionListLanguage[0].size() > 0){
168                 
169                         DataLine += ";LANGUAGE=";
170                         DataLine += DescriptionListLanguage[0];
171                         
172                 }
173                 
174                 if (DescriptionListTokens[0].size() > 0){
175                 
176                         DataLine += ";";
177                         DataLine += DescriptionListTokens[0];
178                         
179                 }
181                 DataLine += ":";
182                 DataLine += DescriptionList[0];
183                 DataLine += "\n";
184                 
185                 DataLineProcessed = OutputText(&DataLine);
186                 
187                 *SaveData += DataLineProcessed;
188                 
189                 DataLine.clear();
190                 DataLineProcessed.clear();
191                 
192         }
193         
194         // Process the DTSTART.
195         
196         if (DateTimeStartData.size() > 0){
197                 
198                 DataLine += "DTSTART";
199                 
200                 if (DateTimeStartDataValue.size() > 0){
201                 
202                         DataLine += ";VALUE=";
203                         DataLine += DateTimeStartDataValue;                     
204                         
205                 }
206                 
207                 if (DateTimeStartDataTimeZoneID.size() > 0){
208                 
209                         DataLine += ";TZID=";
210                         DataLine += DateTimeStartDataTimeZoneID;                        
211                         
212                 }
213                 
214                 if (DateTimeStartDataTokens.size() > 0){
215                 
216                         DataLine += ";";
217                         DataLine += DateTimeStartDataTokens;
218                         
219                 }
221                 DataLine += ":";
222                 DataLine += DateTimeStartData;
223                 DataLine += "\n";
224                 
225                 DataLineProcessed = OutputText(&DataLine);
226                 
227                 *SaveData += DataLineProcessed;
228                 
229                 DataLine.clear();
230                 DataLineProcessed.clear();
231                 
232         }
233         
234         // Process the GEO value.
235         
236         if (GeographicData.size() > 0){
237                 
238                 if (GeographicTokens.size() > 0){
239                 
240                         DataLine += "GEO;";
241                         DataLine += GeographicTokens;
242                         
243                 } else {
245                         DataLine += "GEO";
246                         
247                 }
249                 DataLine += ":";
250                 DataLine += GeographicData;
251                 DataLine += "\n";
252                 
253                 DataLineProcessed = OutputText(&DataLine);
254                 
255                 *SaveData += DataLineProcessed;
256                 
257                 DataLine.clear();
258                 DataLineProcessed.clear();
259                 
260         }
261         
262         // Process the LAST-MODIFIED value.
263         
264         if (LastModifiedData.size() > 0){
265                 
266                 if (LastModifiedTokens.size() > 0){
267                 
268                         DataLine += "LAST-MODIFIED;";
269                         DataLine += LastModifiedTokens;
270                         
271                 } else {
273                         DataLine += "LAST-MODIFIED";
274                         
275                 }
277                 DataLine += ":";
278                 DataLine += LastModifiedData;
279                 DataLine += "\n";
280                 
281                 DataLineProcessed = OutputText(&DataLine);
282                 
283                 *SaveData += DataLineProcessed;
284                 
285                 DataLine.clear();
286                 DataLineProcessed.clear();
287                 
288         }
289         
290         // Process the LOCATION value.
292         if (LocationData.size() > 0){
293                 
294                 DataLine += "LOCATION";
295                 
296                 if (LocationDataAltRep.size() > 0){
297                 
298                         DataLine += ";ALTREP=\"";
299                         DataLine += LocationDataAltRep;
300                         DataLine += "\"";
301                         
302                 }
303                 
304                 if (LocationDataLanguage.size() > 0){
305                 
306                         DataLine += ";LANGUAGE=";
307                         DataLine += LocationDataLanguage;                       
308                         
309                 }
310                 
311                 if (LocationDataTokens.size() > 0){
312                 
313                         DataLine += ";";
314                         DataLine += LocationDataTokens;
315                         
316                 }
317                 
318                 DataLine += ":";
319                 DataLine += LocationData;
320                 DataLine += "\n";
321                 
322                 DataLineProcessed = OutputText(&DataLine);
323                 
324                 *SaveData += DataLineProcessed;
326                 DataLine.clear();
327                 DataLineProcessed.clear();
328                 
329         }
330         
331         // Process the ORGANIZER value.
332         
333         if (OrganiserData.size() > 0){
334                 
335                 DataLine += "ORGANIZER";
336                 
337                 if (OrganiserDataCommonName.size() > 0){
338                 
339                         DataLine += ";CN=";
340                         DataLine += OrganiserDataCommonName;
341                         
342                 }
344                 if (OrganiserDataDirectoryEntry.size() > 0){
345                 
346                         DataLine += ";DIR=\"";
347                         DataLine += OrganiserDataDirectoryEntry;
348                         DataLine += "\"";
349                         
350                 }
351                 
352                 if (OrganiserDataSentByParam.size() > 0){
353                 
354                         DataLine += ";SENT-BY=\"";
355                         DataLine += OrganiserDataSentByParam;                   
356                         DataLine += "\"";
357                         
358                 }
359                 
360                 if (OrganiserDataLanguage.size() > 0){
361                 
362                         DataLine += ";LANGUAGE=";
363                         DataLine += OrganiserDataLanguage;                      
364                         
365                 }
366                 
367                 if (OrganiserDataTokens.size() > 0){
368                 
369                         DataLine += ";";
370                         DataLine += OrganiserDataTokens;
371                         
372                 }
373                 
374                 DataLine += ":";
375                 DataLine += OrganiserData;
376                 DataLine += "\n";
377                 
378                 DataLineProcessed = OutputText(&DataLine);
379                 
380                 *SaveData += DataLineProcessed;
382                 DataLine.clear();
383                 DataLineProcessed.clear();
384                 
385         }
386         
387         // Process the PERCENT-COMPLETE value.
388         
389         if (PercentCompleteData.size() > 0){
390                 
391                 if (PercentCompleteTokens.size() > 0){
392                 
393                         DataLine += "PERCENT-COMPLETE;";
394                         DataLine += PercentCompleteTokens;
395                         
396                 } else {
398                         DataLine += "PERCENT-COMPLETE";
399                         
400                 }
402                 DataLine += ":";
403                 DataLine += PercentCompleteData;
404                 DataLine += "\n";
405                 
406                 DataLineProcessed = OutputText(&DataLine);
407                 
408                 *SaveData += DataLineProcessed;
409                 
410                 DataLine.clear();
411                 DataLineProcessed.clear();
412                 
413         }
414         
415         // Process the PRIORITY value.
416         
417         if (PriorityData > -1 && PriorityData < 10){
418                 
419                 DataLine += "PRIORITY";
420                 
421                 if (PriorityTokens.size() > 0){
422                 
423                         DataLine += ";";
424                         DataLine += PriorityTokens;
425                         
426                 }
427                 
428                 DataLine += ":";
429                 DataLine += to_string(PriorityData);
430                 DataLine += "\n";
431                 
432                 DataLineProcessed = OutputText(&DataLine);
433                 
434                 *SaveData += DataLineProcessed;
436                 DataLine.clear();
437                 DataLineProcessed.clear();
438                 
439         }
440         
441         // Process the RECURRENCE-ID value.
442         
443         if (RecurranceIDData.size() > 0){
444                 
445                 DataLine += "RECURRENCE-ID";
447                 if (RecurranceIDDataTimeZoneParam.size() > 0){
448                 
449                         DataLine += ";TZID=";
450                         DataLine += RecurranceIDDataTimeZoneParam;                      
451                         
452                 }
453                 
454                 if (RecurranceIDDataRangeParam.size() > 0){
455                 
456                         DataLine += ";RANGE=";
457                         DataLine += RecurranceIDDataRangeParam;                 
458                         
459                 }
460                 
461                 if (RecurranceIDDataValue.size() > 0){
462                 
463                         DataLine += ";VALUE=";
464                         DataLine += RecurranceIDDataValue;                      
465                         
466                 }
467                 
468                 if (RecurranceIDDataTokens.size() > 0){
469                 
470                         DataLine += ";";
471                         DataLine += RecurranceIDDataTokens;
472                         
473                 }
474                 
475                 DataLine += ":";
476                 DataLine += RecurranceIDData;
477                 DataLine += "\n";
478                 
479                 DataLineProcessed = OutputText(&DataLine);
480                 
481                 *SaveData += DataLineProcessed;
483                 DataLine.clear();
484                 DataLineProcessed.clear();
485                 
486         }
487         
488         // Process the SEQUENCE value.
489         
490         if (SequenceData > -1 && SequenceData < 10){
491                 
492                 DataLine += "SEQUENCE";
493                 
494                 if (SequenceTokens.size() > 0){
495                 
496                         DataLine += ";";
497                         DataLine += SequenceTokens;
498                         
499                 }
500                 
501                 DataLine += ":";
502                 DataLine += to_string(SequenceData);
503                 DataLine += "\n";
504                 
505                 DataLineProcessed = OutputText(&DataLine);
506                 
507                 *SaveData += DataLineProcessed;
509                 DataLine.clear();
510                 DataLineProcessed.clear();
511                 
512         }
513         
514         // Process the STATUS value.
515         
516         if (StatusData.size() > 0){
517                 
518                 DataLine += "STATUS";
519                 
520                 if (StatusLanguage.size() > 0){
521                 
522                         DataLine += ";LANGUAGE=";
523                         DataLine += StatusLanguage;                     
524                         
525                 }
526                 
527                 if (StatusTokens.size() > 0){
528                 
529                         DataLine += ";";
530                         DataLine += StatusTokens;
531                         
532                 }
533                 
534                 DataLine += ":";
535                 DataLine += StatusData;
536                 DataLine += "\n";
537                 
538                 DataLineProcessed = OutputText(&DataLine);
539                 
540                 *SaveData += DataLineProcessed;
542                 DataLine.clear();
543                 DataLineProcessed.clear();
544                 
545         }
546         
547         // Process the SUMMARY.
548         
549         if (SummaryData.size() > 0){
550                 
551                 DataLine += "SUMMARY";
552                 
553                 if (SummaryDataAltRep.size() > 0){
554                 
555                         DataLine += ";ALTREP=\"";
556                         DataLine += SummaryDataAltRep;
557                         DataLine += "\"";
558                         
559                 }
560                 
561                 if (SummaryDataLanguage.size() > 0){
562                 
563                         DataLine += ";LANGUAGE=";
564                         DataLine += SummaryDataLanguage;                        
565                         
566                 }
567                 
568                 if (SummaryDataTokens.size() > 0){
569                 
570                         DataLine += ";";
571                         DataLine += SummaryDataTokens;
572                         
573                 }
574                 
575                 DataLine += ":";
576                 DataLine += SummaryData;
577                 DataLine += "\n";
578                 
579                 DataLineProcessed = OutputText(&DataLine);
580                 
581                 *SaveData += DataLineProcessed;
583                 DataLine.clear();
584                 DataLineProcessed.clear();
585                 
586         }
587         
588         // Process the URL value.
589         
590         if (URLData.size() > 0){
591                 
592                 DataLine += "URL";
594                 if (URLDataTokens.size() > 0){
595                 
596                         DataLine += ";";
597                         DataLine += URLDataTokens;
598                         
599                 }
600                 
601                 DataLine += ":";
602                 DataLine += URLData;
603                 DataLine += "\n";
604                 
605                 DataLineProcessed = OutputText(&DataLine);
606                 
607                 *SaveData += DataLineProcessed;
609                 DataLine.clear();
610                 DataLineProcessed.clear();
611                 
612         }
613         
614         // Process the RRULE value.
615         
616         if (RecurranceRuleData.size() > 0){
617                 
618                 DataLine += "RRULE";
620                 if (RecurranceRuleDataTokens.size() > 0){
621                 
622                         DataLine += ";";
623                         DataLine += RecurranceRuleDataTokens;
624                         
625                 }
626                 
627                 DataLine += ":";
628                 DataLine += RecurranceRuleData;
629                 DataLine += "\n";
630                 
631                 DataLineProcessed = OutputText(&DataLine);
632                 
633                 *SaveData += DataLineProcessed;
635                 DataLine.clear();
636                 DataLineProcessed.clear();
637                 
638         }
639         
640         // Process the DUE value.
641         
642         if (DueData.size() > 0){
643                 
644                 DataLine += "DUE";
645                 
646                 if (DueDataTimeZoneID.size() > 0){
647                 
648                         DataLine += ";TZID=";
649                         DataLine += DueDataTimeZoneID;
650                         
651                 }
652                 
653                 if (DueDataValue.size() > 0){
654                 
655                         DataLine += ";VALUE=";
656                         DataLine += DueDataValue;
657                         
658                 }
659                 
660                 if (SummaryDataTokens.size() > 0){
661                 
662                         DataLine += ";";
663                         DataLine += DueDataTokens;
664                         
665                 }
666                 
667                 DataLine += ":";
668                 DataLine += DueData;
669                 DataLine += "\n";
670                 
671                 DataLineProcessed = OutputText(&DataLine);
672                 
673                 *SaveData += DataLineProcessed;
675                 DataLine.clear();
676                 DataLineProcessed.clear();
677                 
678         }
679         
680         // Process the ATTACH values.
681         
682         if (AttachList.size() > 0){
683                 
684                 for (int AttachListSeek = 0; AttachListSeek < AttachList.size();
685                         AttachListSeek++){
686                         
687                         DataLine += "ATTACH";
689                         if (AttachListFormatType[AttachListSeek].size() > 0){
690                 
691                                 DataLine += ";FMTTYPE=";
692                                 DataLine += AttachListFormatType[AttachListSeek];
693                         
694                         }
695                                 
696                         if (AttachListValue[AttachListSeek].size() > 0){
697                 
698                                 DataLine += ";VALUE=";
699                                 DataLine += AttachListValue[AttachListSeek];
700                         
701                         }
702                                 
703                         if (AttachListEncoding[AttachListSeek].size() > 0){
704                 
705                                 DataLine += ";ENCODING=";
706                                 DataLine += AttachListEncoding[AttachListSeek];
707                         
708                         }
709                                 
710                         if (AttachListTokens[AttachListSeek].size() > 0){
711                 
712                                 DataLine += ";";
713                                 DataLine += AttachListTokens[AttachListSeek];
714                         
715                         }
716                 
717                         DataLine += ":";
718                         DataLine += AttachList[AttachListSeek];
719                         DataLine += "\n";
720                 
721                         DataLineProcessed = OutputText(&DataLine);
722                 
723                         *SaveData += DataLineProcessed;
725                         DataLine.clear();
726                         DataLineProcessed.clear();
727                                 
728                 }
729                 
730         }
731         
732         // Process the ATTENDEE value.
733         
734         if (AttendeeList.size() > 0){
735                 
736                 for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
737                         AttendeeListSeek++){
738         
739                         DataLine += "ATTENDEE";
741                         if (AttendeeListMember[AttendeeListSeek].size() > 0){
742                 
743                                 DataLine += ";MEMBER=\"";
744                                 DataLine += AttendeeListMember[AttendeeListSeek];
745                                 DataLine += "\"";
746                         
747                         }
748                                 
749                         if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
750                 
751                                 DataLine += ";DELEGATED-FROM=\"";
752                                 DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
753                                 DataLine += "\"";
754                         
755                         }
757                         if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
758                 
759                                 DataLine += ";DELEGATED-TO=\"";
760                                 DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
761                                 DataLine += "\"";
762                         
763                         }
765                         if (AttendeeListRole[AttendeeListSeek].size() > 0){
766                 
767                                 DataLine += ";ROLE=";
768                                 DataLine += AttendeeListRole[AttendeeListSeek];
769                         
770                         }
771                         
772                         if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
773                 
774                                 DataLine += ";RSVP=";
775                                 DataLine += AttendeeListRSVP[AttendeeListSeek];
776                         
777                         }
778                         
779                         if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
780                 
781                                 DataLine += ";DIR=\"";
782                                 DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
783                                 DataLine += "\"";
784                         
785                         }
786                         
787                         if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
788                                 
789                                 DataLine += ";SENT-BY=\"";
790                                 DataLine += AttendeeListSentBy[AttendeeListSeek];
791                                 DataLine += "\"";
792                                 
793                         }
795                         if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
796                                 
797                                 DataLine += ";CN=\"";
798                                 DataLine += AttendeeListCommonName[AttendeeListSeek];
799                                 DataLine += "\"";
800                                 
801                         }
803                         if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
804                                 
805                                 DataLine += ";CUTYPE=";
806                                 DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
807                                 
808                         }
809                         
810                         if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
811                                 
812                                 DataLine += ";PARTSTAT=";
813                                 DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
814                                 
815                         }
816                         
817                         if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
818                                 
819                                 DataLine += ";LANGUAGE=";
820                                 DataLine += AttendeeListLanguage[AttendeeListSeek];
821                                 
822                         }
823                         
824                         if (AttendeeListTokens[AttendeeListSeek].size() > 0){
825                 
826                                 DataLine += ";";
827                                 DataLine += AttendeeListTokens[AttendeeListSeek];
828                         
829                         }
830                                 
831                         DataLine += ":";
832                         DataLine += AttendeeList[AttendeeListSeek];
833                         DataLine += "\n";
834                 
835                         DataLineProcessed = OutputText(&DataLine);
836                 
837                         *SaveData += DataLineProcessed;
839                         DataLine.clear();
840                         DataLineProcessed.clear();
841                                 
842                 }
843                         
844         }
845         
846         // Process the CATEGORIES value.
847         
848         if (CategoriesList.size() > 0){
849                 
850                 for (int CategoriesListSeek = 0; CategoriesListSeek < CategoriesList.size();
851                         CategoriesListSeek++){
852         
853                         DataLine += "CATEGORIES";
854                                 
855                         if (CategoriesListLanguage[CategoriesListSeek].size() > 0){
856                 
857                                 DataLine += ";LANGUAGE=";
858                                 DataLine += CategoriesListLanguage[CategoriesListSeek];
859                         
860                         }                       
861                         
862                         if (CategoriesListTokens[CategoriesListSeek].size() > 0){
863                 
864                                 DataLine += ";";
865                                 DataLine += CategoriesListTokens[CategoriesListSeek];
866                         
867                         }
868                                 
869                         DataLine += ":";
870                         DataLine += CategoriesList[CategoriesListSeek];
871                         DataLine += "\n";
872                 
873                         DataLineProcessed = OutputText(&DataLine);
874                 
875                         *SaveData += DataLineProcessed;
877                         DataLine.clear();
878                         DataLineProcessed.clear();
879                                 
880                 }
881                 
882         }
883         
884         // Process the COMMENT value.
885         
886         if (CommentList.size() > 0){
887                 
888                 for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
889                         CommentListSeek++){
890         
891                         DataLine += "COMMENT";
892                         
893                         if (CommentListAltRep[CommentListSeek].size() > 0){
894                 
895                                 DataLine += ";ALTREP=\"";
896                                 DataLine += CommentListAltRep[CommentListSeek];
897                                 DataLine += "\"";
898                         
899                         }
900                                 
901                         if (CommentListLanguage[CommentListSeek].size() > 0){
902                 
903                                 DataLine += ";LANGUAGE=";
904                                 DataLine += CommentListLanguage[CommentListSeek];
905                         
906                         }
907                         
908                         if (CommentListTokens[CommentListSeek].size() > 0){
909                 
910                                 DataLine += ";";
911                                 DataLine += CommentListTokens[CommentListSeek];
912                         
913                         }
914                                 
915                         DataLine += ":";
916                         DataLine += CommentList[CommentListSeek];
917                         DataLine += "\n";
918                 
919                         DataLineProcessed = OutputText(&DataLine);
920                 
921                         *SaveData += DataLineProcessed;
923                         DataLine.clear();
924                         DataLineProcessed.clear();
925                                 
926                 }
927                 
928         }
929         
930         // Process the CONTACT value.
931         
932         if (ContactList.size() > 0){
933                 
934                 for (int ContactListSeek = 0; ContactListSeek < ContactList.size();
935                         ContactListSeek++){
936         
937                         DataLine += "CONTACT";
938                         
939                         if (ContactListAltRep[ContactListSeek].size() > 0){
940                 
941                                 DataLine += ";ALTREP=\"";
942                                 DataLine += ContactListAltRep[ContactListSeek];
943                                 DataLine += "\"";
944                         
945                         }
946                                 
947                         if (ContactListLanguage[ContactListSeek].size() > 0){
948                 
949                                 DataLine += ";LANGUAGE=";
950                                 DataLine += ContactListLanguage[ContactListSeek];
951                         
952                         }
953                         
954                         if (ContactListTokens[ContactListSeek].size() > 0){
955                 
956                                 DataLine += ";";
957                                 DataLine += ContactListTokens[ContactListSeek];
958                         
959                         }
960                                 
961                         DataLine += ":";
962                         DataLine += ContactList[ContactListSeek];
963                         DataLine += "\n";
964                 
965                         DataLineProcessed = OutputText(&DataLine);
966                 
967                         *SaveData += DataLineProcessed;
969                         DataLine.clear();
970                         DataLineProcessed.clear();
971                                 
972                 }
973                 
974         }
975         
976         // Process the EXDATE value.
977         
978         if (ExcludeDateData.size() > 0){
979                 
980                 for (int ExcludeDateDataSeek = 0; ExcludeDateDataSeek < ExcludeDateData.size();
981                         ExcludeDateDataSeek++){
982         
983                         DataLine += "EXDATE";
984                                 
985                         if (ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek].size() > 0){
986                 
987                                 DataLine += ";TZID=";
988                                 DataLine += ExcludeDateDataTimeZoneParam[ExcludeDateDataSeek];
989                         
990                         }
991                         
992                         if (ExcludeDateDataValue[ExcludeDateDataSeek].size() > 0){
993                 
994                                 DataLine += ";VALUE=";
995                                 DataLine += ExcludeDateDataValue[ExcludeDateDataSeek];
996                         
997                         }
998                         
999                         if (ExcludeDateDataTokens[ExcludeDateDataSeek].size() > 0){
1000                 
1001                                 DataLine += ";";
1002                                 DataLine += ExcludeDateDataTokens[ExcludeDateDataSeek];
1003                         
1004                         }
1005                                 
1006                         DataLine += ":";
1007                         DataLine += ExcludeDateData[ExcludeDateDataSeek];
1008                         DataLine += "\n";
1009                 
1010                         DataLineProcessed = OutputText(&DataLine);
1011                 
1012                         *SaveData += DataLineProcessed;
1014                         DataLine.clear();
1015                         DataLineProcessed.clear();
1016                                 
1017                 }
1018                 
1019         }
1020         
1021         // Process the REQUEST-STATUS value.
1022         
1023         if (RequestStatusData.size() > 0){
1024                 
1025                 for (int RequestStatusDataSeek = 0; RequestStatusDataSeek < RequestStatusData.size();
1026                         RequestStatusDataSeek++){
1027         
1028                         DataLine += "REQUEST-STATUS";
1029                         
1030                         if (RequestStatusLanguage[RequestStatusDataSeek].size() > 0){
1031                 
1032                                 DataLine += ";LANGUAGE=";
1033                                 DataLine += RequestStatusLanguage[RequestStatusDataSeek];
1034                         
1035                         }
1036                         
1037                         if (RequestStatusTokens[RequestStatusDataSeek].size() > 0){
1038                 
1039                                 DataLine += ";";
1040                                 DataLine += RequestStatusTokens[RequestStatusDataSeek];
1041                         
1042                         }
1043                                 
1044                         DataLine += ":";
1045                         DataLine += RequestStatusData[RequestStatusDataSeek];
1046                         DataLine += "\n";
1047                 
1048                         DataLineProcessed = OutputText(&DataLine);
1049                 
1050                         *SaveData += DataLineProcessed;
1052                         DataLine.clear();
1053                         DataLineProcessed.clear();
1054                                 
1055                 }
1056                 
1057         }
1058         
1059         // Process the RELATED-TO value.
1060         
1061         if (RelatedToData.size() > 0){
1062                 
1063                 for (int RequestToDataSeek = 0; RequestToDataSeek < RelatedToData.size();
1064                         RequestToDataSeek++){
1065         
1066                         DataLine += "RELATED-TO";
1067                         
1068                         if (RelatedToDataRelationType[RequestToDataSeek].size() > 0){
1069                 
1070                                 DataLine += ";RELTYPE=";
1071                                 DataLine += RelatedToDataRelationType[RequestToDataSeek];
1072                         
1073                         }
1074                         
1075                         if (RelatedToDataTokens[RequestToDataSeek].size() > 0){
1076                 
1077                                 DataLine += ";";
1078                                 DataLine += RelatedToDataTokens[RequestToDataSeek];
1079                         
1080                         }
1081                                 
1082                         DataLine += ":";
1083                         DataLine += RelatedToData[RequestToDataSeek];
1084                         DataLine += "\n";
1085                 
1086                         DataLineProcessed = OutputText(&DataLine);
1087                 
1088                         *SaveData += DataLineProcessed;
1090                         DataLine.clear();
1091                         DataLineProcessed.clear();
1092                                 
1093                 }
1094                 
1095         }
1096         
1097         // Process the RESOURCES value.
1098         
1099         if (ResourcesData.size() > 0){
1100                 
1101                 for (int ResourcesDataSeek = 0; ResourcesDataSeek < ResourcesData.size();
1102                         ResourcesDataSeek++){
1103         
1104                         DataLine += "RESOURCES";
1105                         
1106                         if (ResourcesDataAltRep[ResourcesDataSeek].size() > 0){
1107                 
1108                                 DataLine += ";ALTREP=\"";
1109                                 DataLine += ResourcesDataAltRep[ResourcesDataSeek];
1110                                 DataLine += "\"";
1111                         
1112                         }
1113                                 
1114                         if (ResourcesDataLanguage[ResourcesDataSeek].size() > 0){
1115                 
1116                                 DataLine += ";LANGUAGE=";
1117                                 DataLine += ResourcesDataLanguage[ResourcesDataSeek];
1118                         
1119                         }
1120                         
1121                         if (ResourcesDataTokens[ResourcesDataSeek].size() > 0){
1122                 
1123                                 DataLine += ";";
1124                                 DataLine += ResourcesDataTokens[ResourcesDataSeek];
1125                         
1126                         }
1127                                 
1128                         DataLine += ":";
1129                         DataLine += ResourcesData[ResourcesDataSeek];
1130                         DataLine += "\n";
1131                 
1132                         DataLineProcessed = OutputText(&DataLine);
1133                 
1134                         *SaveData += DataLineProcessed;
1136                         DataLine.clear();
1137                         DataLineProcessed.clear();
1138                                 
1139                 }
1140                 
1141         }
1142         
1143         // Process the RDATE value.
1144         
1145         if (RecurranceDateData.size() > 0){
1146                 
1147                 for (int RecurranceDateDataSeek = 0; RecurranceDateDataSeek < RecurranceDateData.size();
1148                         RecurranceDateDataSeek++){
1149         
1150                         DataLine += "RDATE";
1151                         
1152                         if (RecurranceDateDataValue[RecurranceDateDataSeek].size() > 0){
1153                 
1154                                 DataLine += ";VALUE=";
1155                                 DataLine += RecurranceDateDataValue[RecurranceDateDataSeek];
1156                         
1157                         }
1158                                 
1159                         if (RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek].size() > 0){
1160                 
1161                                 DataLine += ";TZID=";
1162                                 DataLine += RecurranceDateDataTimeZoneParam[RecurranceDateDataSeek];
1163                         
1164                         }
1165                         
1166                         if (RecurranceDateDataTokens[RecurranceDateDataSeek].size() > 0){
1167                 
1168                                 DataLine += ";";
1169                                 DataLine += RecurranceDateDataTokens[RecurranceDateDataSeek];
1170                         
1171                         }
1172                                 
1173                         DataLine += ":";
1174                         DataLine += RecurranceDateData[RecurranceDateDataSeek];
1175                         DataLine += "\n";
1176                 
1177                         DataLineProcessed = OutputText(&DataLine);
1178                 
1179                         *SaveData += DataLineProcessed;
1181                         DataLine.clear();
1182                         DataLineProcessed.clear();
1183                                 
1184                 }
1185                 
1186         }
1187         
1188         // Process the VALARMS.
1189         
1190         if (CalendarAlarmData.size() > 0){
1191                 
1192                 for (int CalendarAlarmDataSeek = 0; CalendarAlarmDataSeek < CalendarAlarmData.size();
1193                         CalendarAlarmDataSeek++){
1194                         
1195                         *SaveData += "BEGIN:VALARM\n";
1196                         
1197                         // Process the ACTION VALARM value.
1198                                 
1199                         DataLine += "ACTION";
1201                         if (CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens.size() > 0){
1202                 
1203                                 DataLine += ";";
1204                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmActionTokens;
1205                         
1206                         }
1207                                 
1208                         DataLine += ":";
1209                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AlarmAction;
1210                         DataLine += "\n";
1211                 
1212                         DataLineProcessed = OutputText(&DataLine);
1213                 
1214                         *SaveData += DataLineProcessed;
1216                         DataLine.clear();
1217                         DataLineProcessed.clear();
1218                         
1219                         // Process the TRIGGER VALARM value.
1220                         
1221                         if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerData.size() > 0){
1222                                 
1223                                 DataLine += "TRIGGER";
1224                                 
1225                                 if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated.size() > 0){
1226                 
1227                                         DataLine += ";RELATED=";
1228                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerRelated;
1229                         
1230                                 }
1231                                 
1232                                 if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue.size() > 0){
1233                 
1234                                         DataLine += ";VALUE=";
1235                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerValue;
1236                         
1237                                 }
1238                                 
1239                                 if (CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens.size() > 0){
1240                 
1241                                         DataLine += ";";
1242                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerTokens;
1243                         
1244                                 }
1245                                 
1246                                 DataLine += ":";
1247                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].TriggerData;
1248                                 DataLine += "\n";
1249                 
1250                                 DataLineProcessed = OutputText(&DataLine);
1251                 
1252                                 *SaveData += DataLineProcessed;
1254                                 DataLine.clear();
1255                                 DataLineProcessed.clear();                              
1256                                 
1257                         }
1258                         
1259                         // Process the DURATION VALARM value.
1260                         
1261                         if (CalendarAlarmData[CalendarAlarmDataSeek].DurationData.size() > 0){
1262                                 
1263                                 DataLine += "DURATION";
1264                                 
1265                                 if (CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens.size() > 0){
1266                 
1267                                         DataLine += ";";
1268                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationTokens;
1269                         
1270                                 }
1271                                 
1272                                 DataLine += ":";
1273                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DurationData;
1274                                 DataLine += "\n";
1275                 
1276                                 DataLineProcessed = OutputText(&DataLine);
1277                 
1278                                 *SaveData += DataLineProcessed;
1280                                 DataLine.clear();
1281                                 DataLineProcessed.clear();                              
1282                                 
1283                         }
1284                         
1285                         // Process the DESCRIPTION VALARM value.
1286                         
1287                         if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData.size() > 0){
1288                                 
1289                                 DataLine += "DESCRIPTION";
1291                                 if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep.size() > 0){
1292                 
1293                                         DataLine += ";ALTREP=\"";
1294                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionAltRep;
1295                                         DataLine += "\"";
1296                         
1297                                 }
1298                                 
1299                                 if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage.size() > 0){
1300                 
1301                                         DataLine += ";LANGUAGE=";
1302                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionLanguage;
1303                         
1304                                 }
1305                                 
1306                                 if (CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens.size() > 0){
1307                 
1308                                         DataLine += ";";
1309                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionTokens;
1310                         
1311                                 }
1312                                 
1313                                 DataLine += ":";
1314                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].DescriptionData;
1315                                 DataLine += "\n";
1316                 
1317                                 DataLineProcessed = OutputText(&DataLine);
1318                 
1319                                 *SaveData += DataLineProcessed;
1321                                 DataLine.clear();
1322                                 DataLineProcessed.clear();                              
1323                                 
1324                         }
1325                         
1326                         // Process the SUMMARY VALARM value.
1327                         
1328                         if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryData.size() > 0){
1329                                 
1330                                 DataLine += "SUMMARY";
1332                                 if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep.size() > 0){
1333                 
1334                                         DataLine += ";ALTREP=\"";
1335                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryAltRep;
1336                                         DataLine += "\"";
1337                         
1338                                 }
1339                                 
1340                                 if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage.size() > 0){
1341                 
1342                                         DataLine += ";LANGUAGE=";
1343                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryLanguage;
1344                         
1345                                 }
1346                                 
1347                                 if (CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens.size() > 0){
1348                 
1349                                         DataLine += ";";
1350                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryTokens;
1351                         
1352                                 }
1353                                 
1354                                 DataLine += ":";
1355                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].SummaryData;
1356                                 DataLine += "\n";
1357                 
1358                                 DataLineProcessed = OutputText(&DataLine);
1359                 
1360                                 *SaveData += DataLineProcessed;
1362                                 DataLine.clear();
1363                                 DataLineProcessed.clear();                              
1364                                 
1365                         }
1366                         
1367                         // Process the REPEAT VALARM value.
1368                         
1369                         if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatData.size() > 0){
1370                                 
1371                                 DataLine += "REPEAT";
1372                                 
1373                                 if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens.size() > 0){
1374                 
1375                                         DataLine += ";";
1376                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens;
1377                         
1378                                 }
1379                                 
1380                                 DataLine += ":";
1381                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatData;
1382                                 DataLine += "\n";
1383                 
1384                                 DataLineProcessed = OutputText(&DataLine);
1385                 
1386                                 *SaveData += DataLineProcessed;
1388                                 DataLine.clear();
1389                                 DataLineProcessed.clear();                              
1390                                 
1391                         }
1392                         
1393                         // Process the ATTENDEE VALARM values.
1394                         
1395                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size() > 0){
1396                 
1397                                 for (int AttendeeListSeek = 0; AttendeeListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size();
1398                                         AttendeeListSeek++){
1399         
1400                                         DataLine += "ATTENDEE";
1402                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek].size() > 0){
1403                 
1404                                                 DataLine += ";MEMBER=\"";
1405                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek];
1406                                                 DataLine += "\"";
1407                         
1408                                         }
1409                         
1410                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
1411                 
1412                                                 DataLine += ";DELEGATED-FROM=\"";
1413                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek];
1414                                                 DataLine += "\"";
1415                         
1416                                         }
1418                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
1419                 
1420                                                 DataLine += ";DELEGATED-TO=\"";
1421                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek];
1422                                                 DataLine += "\"";
1423                         
1424                                         }
1426                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek].size() > 0){
1427                 
1428                                                 DataLine += ";ROLE=";
1429                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek];
1430                         
1431                                         }
1432                         
1433                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek].size() > 0){
1434                 
1435                                                 DataLine += ";RSVP=";
1436                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek];
1437                         
1438                                         }
1439                         
1440                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
1441                 
1442                                                 DataLine += ";DIR=\"";
1443                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek];
1444                                                 DataLine += "\"";
1445                         
1446                                         }
1447                         
1448                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek].size() > 0){
1449                                 
1450                                                 DataLine += ";SENT-BY=\"";
1451                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek];
1452                                                 DataLine += "\"";
1453                                 
1454                                         }
1456                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek].size() > 0){
1457                                 
1458                                                 DataLine += ";CN=\"";
1459                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek];
1460                                                 DataLine += "\"";
1461                                 
1462                                         }
1464                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
1465                                 
1466                                                 DataLine += ";CUTYPE=";
1467                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek];
1468                                 
1469                                         }
1470                         
1471                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
1472                                 
1473                                                 DataLine += ";PARTSTAT=";
1474                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek];
1475                                 
1476                                         }
1477                         
1478                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek].size() > 0){
1479                                 
1480                                                 DataLine += ";LANGUAGE=";
1481                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek];
1482                                 
1483                                         }
1484                         
1485                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek].size() > 0){
1486                 
1487                                                 DataLine += ";";
1488                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek];
1489                         
1490                                         }
1491                                 
1492                                         DataLine += ":";
1493                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList[AttendeeListSeek];
1494                                         DataLine += "\n";
1495                 
1496                                         DataLineProcessed = OutputText(&DataLine);
1497                 
1498                                         *SaveData += DataLineProcessed;
1500                                         DataLine.clear();
1501                                         DataLineProcessed.clear();
1502                                 
1503                                 }
1504                         
1505                         }
1506                         
1507                         // Process the ATTACH VALARM values.
1508                         
1509                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size() > 0){
1510                 
1511                                 for (int AttachListSeek = 0; AttachListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size();
1512                                         AttachListSeek++){
1513         
1514                                         DataLine += "ATTACH";
1515                                                 
1516                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek].size() > 0){
1517                 
1518                                                 DataLine += ";FMTTYPE=";
1519                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek];
1520                         
1521                                         }
1522                                 
1523                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek].size() > 0){
1524                 
1525                                                 DataLine += ";VALUE=";
1526                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek];
1527                         
1528                                         }
1529                                 
1530                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek].size() > 0){
1531                 
1532                                                 DataLine += ";ENCODING=";
1533                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek];
1534                         
1535                                         }
1536                                 
1537                                         if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek].size() > 0){
1538                 
1539                                                 DataLine += ";";
1540                                                 DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek];
1541                         
1542                                         }
1543                 
1544                                         DataLine += ":";
1545                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachList[AttachListSeek];
1546                                         DataLine += "\n";
1547                 
1548                                         DataLineProcessed = OutputText(&DataLine);
1549                 
1550                                         *SaveData += DataLineProcessed;
1552                                         DataLine.clear();
1553                                         DataLineProcessed.clear();
1554                                         
1555                                 }
1556                                 
1557                         }
1558                         
1559                         // Process the X-Token VALARM values.
1560                         
1561                         if (CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size() > 0){
1562                                 
1563                                 for (int XTokenSeek = 0; XTokenSeek < CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size();
1564                                         XTokenSeek++){
1565         
1566                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensDataTokens[XTokenSeek];             
1567                                         DataLine += ":";
1568                                         DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensData[XTokenSeek];
1569                                         DataLine += "\n";
1570                 
1571                                         DataLineProcessed = OutputText(&DataLine);
1572                 
1573                                         *SaveData += DataLineProcessed;
1575                                         DataLine.clear();
1576                                         DataLineProcessed.clear();
1577                                         
1578                                 }
1579                                 
1580                         }
1581                         
1582                         *SaveData += "END:VALARM\n";
1583                         
1584                 }
1585                 
1586         }
1587         
1588         *SaveData += "END:VTODO\n";
1589         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy