summaryrefslogtreecommitdiffabout
path: root/kabc/vcard/testread.cpp
Side-by-side diff
Diffstat (limited to 'kabc/vcard/testread.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/vcard/testread.cpp129
1 files changed, 129 insertions, 0 deletions
diff --git a/kabc/vcard/testread.cpp b/kabc/vcard/testread.cpp
new file mode 100644
index 0000000..919c661
--- a/dev/null
+++ b/kabc/vcard/testread.cpp
@@ -0,0 +1,129 @@
+#include <iostream>
+#include <stdlib.h>
+#include <assert.h>
+
+#include <qfile.h>
+#include <qtextstream.h>
+
+#include <VCard.h>
+
+using namespace std;
+
+int main(int argc, char * argv[])
+{
+ if (argc != 2) {
+ cerr << "Usage: " << argv[0] << " <filename>" << endl;
+ exit(1);
+ }
+
+ QFile f(argv[1]);
+
+ QCString str;
+
+ if (!f.open(IO_ReadOnly)) {
+ cerr << "Couldn't open file \"" << argv[1] << endl;
+ exit(1);
+ }
+
+ QTextStream t(&f);
+
+ while (!t.eof())
+ str += t.readLine().utf8() + '\n';
+
+ using namespace VCARD;
+
+ // Iterate through all vCards in the file.
+
+ cout << "--------- begin ----------" << endl;
+ cout << str.data();
+ cout << "--------- end ----------" << endl;
+
+ VCardEntity e(str);
+
+ VCardListIterator it(e.cardList());
+
+ for (; it.current(); ++it) {
+
+ cerr << "****************** VCARD ********************" << endl;
+
+ // Create a vcard using the string representation.
+ VCard & v (*it.current());
+
+ if (v.has(EntityEmail)) {
+ cerr << "Email parameter found" << endl;
+
+ QCString s = v.contentLine(EntityEmail)->value()->asString();
+
+ cerr << "Email value == " << s << endl;
+ }
+
+ if (v.has(EntityNickname)) {
+ cerr << "Nickname parameter found" << endl;
+
+ cerr << "Nickname value == " <<
+ v.contentLine(EntityNickname)->value()->asString() <<
+ endl;
+ }
+
+ if (v.has(EntityRevision)) {
+
+ cerr << "Revision parameter found" << endl;
+
+ DateValue * d =
+ (DateValue *)
+ v.contentLine(EntityRevision)->value();
+
+ assert(d != 0);
+
+ cerr << "Revision date: " << endl;
+ cerr << "Day : " << d->day() << endl;
+ cerr << "Month : " << d->month() << endl;
+ cerr << "Year : " << d->year() << endl;
+
+ if (d->hasTime()) {
+ cerr << "Revision date has a time component" << endl;
+ cerr << "Revision time: " << endl;
+ cerr << "Hour : " << d->hour() << endl;
+ cerr << "Minute : " << d->minute() << endl;
+ cerr << "Second : " << d->second() << endl;
+
+ }
+ else cerr << "Revision date does NOT have a time component" << endl;
+ }
+
+ if (v.has(EntityURL)) {
+ cerr << "URL Parameter found" << endl;
+
+ cerr << "URL Value == " <<
+ v.contentLine(EntityURL)->value()->asString() <<
+ endl;
+
+ URIValue * urlVal =
+ (URIValue *)v.contentLine(EntityURL)->value();
+
+ assert(urlVal != 0);
+
+ cerr << "URL scheme == " <<
+ urlVal->scheme() << endl;
+
+ cerr << "URL scheme specific part == " <<
+ urlVal->schemeSpecificPart() << endl;
+ }
+
+ if (v.has(EntityN)) {
+ cerr << "N Parameter found" << endl;
+
+ NValue * n =
+ (NValue *)(v.contentLine(EntityN)->value());
+
+ cerr << "Family name == " << n->family() << endl;
+ cerr << "Given name == " << n->given() << endl;
+ cerr << "Middle name == " << n->middle() << endl;
+ cerr << "Prefix == " << n->prefix() << endl;
+ cerr << "Suffix == " << n->suffix() << endl;
+ }
+
+ cerr << "***************** END VCARD ******************" << endl;
+ }
+}
+