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