kabc Library API Documentation

testread.cpp

00001 #include <iostream> 00002 #include <stdlib.h> 00003 #include <assert.h> 00004 00005 #include <qfile.h> 00006 #include <qtextstream.h> 00007 00008 #include <VCard.h> 00009 00010 using namespace std; 00011 00012 int main(int argc, char * argv[]) 00013 { 00014 if (argc != 2) { 00015 cerr << "Usage: " << argv[0] << " <filename>" << endl; 00016 exit(1); 00017 } 00018 00019 QFile f(argv[1]); 00020 00021 QCString str; 00022 00023 if (!f.open(IO_ReadOnly)) { 00024 cerr << "Couldn't open file \"" << argv[1] << endl; 00025 exit(1); 00026 } 00027 00028 QTextStream t(&f); 00029 00030 while (!t.eof()) 00031 str += t.readLine().utf8() + '\n'; 00032 00033 using namespace VCARD; 00034 00035 // Iterate through all vCards in the file. 00036 00037 cout << "--------- begin ----------" << endl; 00038 cout << str.data(); 00039 cout << "--------- end ----------" << endl; 00040 00041 VCardEntity e(str); 00042 00043 VCardListIterator it(e.cardList()); 00044 00045 for (; it.current(); ++it) { 00046 00047 cerr << "****************** VCARD ********************" << endl; 00048 00049 // Create a vcard using the string representation. 00050 VCard & v (*it.current()); 00051 00052 if (v.has(EntityEmail)) { 00053 cerr << "Email parameter found" << endl; 00054 00055 QCString s = v.contentLine(EntityEmail)->value()->asString(); 00056 00057 cerr << "Email value == " << s << endl; 00058 } 00059 00060 if (v.has(EntityNickname)) { 00061 cerr << "Nickname parameter found" << endl; 00062 00063 cerr << "Nickname value == " << 00064 v.contentLine(EntityNickname)->value()->asString() << 00065 endl; 00066 } 00067 00068 if (v.has(EntityRevision)) { 00069 00070 cerr << "Revision parameter found" << endl; 00071 00072 DateValue * d = 00073 (DateValue *) 00074 v.contentLine(EntityRevision)->value(); 00075 00076 assert(d != 0); 00077 00078 cerr << "Revision date: " << endl; 00079 cerr << "Day : " << d->day() << endl; 00080 cerr << "Month : " << d->month() << endl; 00081 cerr << "Year : " << d->year() << endl; 00082 00083 if (d->hasTime()) { 00084 cerr << "Revision date has a time component" << endl; 00085 cerr << "Revision time: " << endl; 00086 cerr << "Hour : " << d->hour() << endl; 00087 cerr << "Minute : " << d->minute() << endl; 00088 cerr << "Second : " << d->second() << endl; 00089 00090 } 00091 else cerr << "Revision date does NOT have a time component" << endl; 00092 } 00093 00094 if (v.has(EntityURL)) { 00095 cerr << "URL Parameter found" << endl; 00096 00097 cerr << "URL Value == " << 00098 v.contentLine(EntityURL)->value()->asString() << 00099 endl; 00100 00101 URIValue * urlVal = 00102 (URIValue *)v.contentLine(EntityURL)->value(); 00103 00104 assert(urlVal != 0); 00105 00106 cerr << "URL scheme == " << 00107 urlVal->scheme() << endl; 00108 00109 cerr << "URL scheme specific part == " << 00110 urlVal->schemeSpecificPart() << endl; 00111 } 00112 00113 if (v.has(EntityN)) { 00114 cerr << "N Parameter found" << endl; 00115 00116 NValue * n = 00117 (NValue *)(v.contentLine(EntityN)->value()); 00118 00119 cerr << "Family name == " << n->family() << endl; 00120 cerr << "Given name == " << n->given() << endl; 00121 cerr << "Middle name == " << n->middle() << endl; 00122 cerr << "Prefix == " << n->prefix() << endl; 00123 cerr << "Suffix == " << n->suffix() << endl; 00124 } 00125 00126 cerr << "***************** END VCARD ******************" << endl; 00127 } 00128 } 00129
KDE Logo
This file is part of the documentation for kabc Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:42:01 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003