Import and Export vCard item(转)
2010-10-22 17:56
330 查看
[align=right]
[/align]
This snippet can be self-signed.
[align=right]
[/align]
This snippet can be self-signed.
The function returns ETrue to the caller when the file creation succeeds or EFalse when the file creation fails.
CS000900 | Creation date | April 17, 2008 | |
Platform | S60 3rd Edition, FP1 | Tested on devices | Nokia N93 |
Category | Symbian C++ | Subcategory | PIM |
Keywords (APIs, classes, methods, functions): RFileReadStream, CContactDatabase, CContactItem, CContactDatabase::OpenL(), CContactDatabase::ImportContactsL() |
Overview
This snippet shows a simple function implementation to import one or more vCards from a given file to the default contacts database.This snippet can be self-signed.
MMP file
The following capabilities and libraries are required:CAPABILITY WriteUserData
LIBRARY euser.lib LIBRARY estor.lib LIBRARY efsrv.lib LIBRARY cntmodel.lib
Source file
#include <e32cmn.h> //TUid #include <e32std.h> //User #include <e32base.h> //CArrayPtr, CleanupStack #include <e32def.h> //TBool #include <s32file.h> //RFileReadStream #include <f32file.h> //RFs #include <cntdb.h> //CContactDatabase #include <cntitem.h> //CContactItem
TBool ImportVCardL(const TDesC& aFileName) { RFs fileSession; RFile file; TBool result = EFalse; User::LeaveIfError(fileSession.Connect()); CleanupClosePushL(fileSession); if (file.Open(fileSession, aFileName, EFileRead) != KErrNone) { //failed to open the file CleanupStack::PopAndDestroy(); //fileSession return EFalse; } CleanupClosePushL(file); //open a read stream to the file RFileReadStream inputFileStream(file); CleanupClosePushL(inputFileStream); //open the default contacts database CContactDatabase* contactsDb = CContactDatabase::OpenL(); CleanupStack::PushL(contactsDb); //KVersitEntityUidVCard is used to identify a vCard TUid uid = TUid::Uid(KVersitEntityUidVCard); //import one or more vCards from the read stream CArrayPtr<CContactItem>* imported = contactsDb->ImportContactsL(uid, inputFileStream, result, CContactDatabase::ETTFormat); //caller has ownership of the array and frees allocated memory imported->ResetAndDestroy(); delete imported; CleanupStack::PopAndDestroy(4); //contactsDb,inputFileStream, //file,fileSession return result; }
Postconditions
One or more vCards from the given file are imported to the default contacts database. ETrue is returned to the caller or in case of an error, EFalse is returned.[align=right]
ID | CS000901 | Creation date | April 17, 2008 |
Platform | S60 3rd Edition, FP1 | Tested on devices | Nokia N93 |
Category | Symbian C++ | Subcategory | PIM |
Keywords (APIs, classes, methods, functions): RFileWriteStream, CContactDatabase, CContactIdArray, CCntFilter, CContactDatabase::OpenL(), CContactDatabase::ExportSelectedContactsL(), CContactDatabase::FilterDatabaseL(), CCntFilter::SetContactFilterTypeALL(), CCntFilter::SetContactFilterTypeCard() |
Overview
This snippet shows a simple function implementation to export one contact from the default contacts database as a vCard to a given file.This snippet can be self-signed.
MMP file
The following capabilities and libraries are required:CAPABILITY ReadUserData
LIBRARY euser.lib LIBRARY estor.lib LIBRARY efsrv.lib LIBRARY cntmodel.lib
Source file
#include <e32cmn.h> //TUid #include <e32std.h> //User #include <e32base.h> //CArrayPtr, CleanupStack #include <e32def.h> //TBool #include <s32file.h> //RFileReadStream #include <f32file.h> //RFs #include <cntdb.h> //CContactDatabase #include <cntdef.h> //CContactIdArray #include <cntfilt.h> //CCntFilter
TBool ExportVCardL(const TDesC& aFileName, TInt aItemIndex) { RFs fileSession; RFile file; User::LeaveIfError(fileSession.Connect()); CleanupClosePushL(fileSession); if (file.Replace(fileSession, aFileName, EFileWrite) != KErrNone) { //failed to create the file CleanupStack::PopAndDestroy(); //fileSession return EFalse; } CleanupClosePushL(file); //open a write stream to the file RFileWriteStream outputFileStream(file); CleanupClosePushL(outputFileStream); //open the default contacts database CContactDatabase* contactsDb = CContactDatabase::OpenL(); CleanupStack::PushL(contactsDb); //create an array of contact IDs to export CContactIdArray* exportContacts = CContactIdArray::NewL(); CleanupStack::PushL(exportContacts); //use a filter to get only contact items (e.g. templates are excluded) CCntFilter *filter = CCntFilter::NewLC(); filter->SetContactFilterTypeALL(EFalse); filter->SetContactFilterTypeCard(ETrue); contactsDb->FilterDatabaseL(*filter); //create an array to hold all filtered contact items CContactIdArray* contactIds; contactIds = CContactIdArray::NewLC(filter->iIds); //add given contact(by index) to the array of contact IDs to export if((*contactIds).Count() >= aItemIndex) exportContacts->AddL((*contactIds)[aItemIndex] ); CleanupStack::PopAndDestroy(2); //contactIds, filter //KVersitEntityUidVCard is used to identify a vCard TUid uid = TUid::Uid(KVersitEntityUidVCard); contactsDb->ExportSelectedContactsL(uid, *exportContacts, outputFileStream, //contact ID is no exported CContactDatabase::EExcludeUid); CleanupStack::PopAndDestroy(5); //exportContacts,contactsDb, //outputFileStream,file,fileSession return ETrue; }
Postconditions
A contact given by the index from the default contacts database is exported as a vCard to the given file.The function returns ETrue to the caller when the file creation succeeds or EFalse when the file creation fails.
相关文章推荐
- Export/Import DataPump Parameter ACCESS_METHOD - How to Enforce a Method of Loading and Unloading Data ? [ID 552424.1]
- [ Tools ] [ MobaXterm ] [ SSH ] [ Linux ] export and import saved session
- Export and Import Data Records in Small Numbers Situation
- csharp: Export DataSet into Excel and import all the Excel sheets to DataSet
- 103.Which two statements are true regarding the Oracle Data Pump export and import operations? (Choo
- Understanding Item Import and Debugging Problems with Item Import (Doc ID 268968.1)
- Export/Import DataPump Parameter ACCESS_METHOD - How to Enforce a Method of Loading and Unloading Data ? [ID 552424.1]
- Import/Export a Work Item Type from an Existing Project
- Oracle data import and export impl/exp
- Fast Excel import and export
- [Cloud Computing]Mechanisms: Import and Export
- IMPORT_C and EXPORT_C
- Import and Export Negotiations for B2B
- VS Import And Export Settings
- about dll export and import
- How to Export and Import Oracle Database Statistics Information
- 【MongoDB】mongoimport and mongoexport of data (二)
- Export and Import DB2 data
- csharp: Export DataSet into Excel and import all the Excel sheets to DataSet
- 静态接口DLL(IMPORT_C and EXPORT_C)(转)