| # kabc Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

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

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:29:22 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001