Pour infos, ce code génère deux fichiers VCard et les lit juste aprés.
Merci d'avance de votre aide.
Code : Tout sélectionner
Enumeration ; Version
#VCard_Version_2_1
#VCard_Version_3_0
EndEnumeration
Enumeration ; Errors
#VCard_ErrorType_Success
#VCard_ErrorType_FileAccess
#VCard_ErrorType_
EndEnumeration
Enumeration ; Types Phone
#VCard_PhoneType_PREF = 1
#VCard_PhoneType_WORK = 2
#VCard_PhoneType_HOME = 4
#VCard_PhoneType_VOICE = 8
#VCard_PhoneType_FAX = 16
#VCard_PhoneType_MSG = 32
#VCard_PhoneType_CELL = 64
#VCard_PhoneType_PAGER = 128
#VCard_PhoneType_BBS = 256
#VCard_PhoneType_CAR = 512
#VCard_PhoneType_MODEM = 1024
#VCard_PhoneType_ISDN = 2048
#VCard_PhoneType_VIDEO = 4096
EndEnumeration
Enumeration ; Types Adress
#VCard_AdressType_DOM = 1
#VCard_AdressType_INTL = 2
#VCard_AdressType_POSTAL= 4
#VCard_AdressType_PARCEL= 8
#VCard_AdressType_HOME = 16
#VCard_AdressType_WORK = 32
EndEnumeration
Enumeration ; Types Url
#VCard_UrlType_HOME = 1
#VCard_UrlType_WORK = 2
EndEnumeration
Structure S_VCard_Phone
sPhoneNumber.s
lPhoneType.l
EndStructure
Structure S_VCard_Adress
sPostOfficeBox.s
sExtendAdress.s
sStreet.s
sLocality.s
sRegion.s
sPostalCode.s
sCountryName.s
lAdressType.l
EndStructure
Structure S_VCard_Url
sUrl.s
lUrlType.l
EndStructure
Structure S_VCard
lVersion.l
sMailer.s
sFirstName.s ; Prenom
sLastName.s ; Nom
sBirthday.s
sEMail.s
sNote.s
sSociety.s ; Societe
sTitle.s ; Title
sRevision.s
lPhoneNum.l ; Number of PhoneNumber
dimPhoneNum.S_VCard_Phone[20]
lAdressNum.l ; Number of Adress
dimAdress.S_VCard_Adress[20]
lURLNum.l ; Number of URL
dimURL.S_VCard_URL[20]
EndStructure
ProcedureDLL VCard_Write(*VCard.S_VCard, Filename.s)
Protected plFile.l
Protected plVarTmp.l
Protected psVarTmp.s
Protected psEndOfLine.s
Protected psTypeSeparator.s
Protected psTypeStart.s
Protected psTypeEnd.s
plFile = OpenFile(#PB_Any, Filename)
If plFile
If *VCard\lVersion = #VCard_Version_2_1
psEndOfLine = Chr(13)+Chr(10)
psTypeSeparator = ";"
psTypeStart = ";"
psTypeEnd = ""
Else
psEndOfLine = Chr(10)
psTypeSeparator = ","
psTypeStart = ";TYPE="
psTypeEnd = ""
EndIf
WriteString(plFile, "BEGIN:VCARD"+psEndOfLine)
; Version
If *VCard\lVersion = #VCard_Version_2_1
WriteString(plFile, "VERSION:2.1"+psEndOfLine)
Else
WriteString(plFile, "VERSION:3.0"+psEndOfLine)
EndIf
; Name
WriteString(plFile, "N:"+*VCard\sLastName+";"+*VCard\sFirstName+psEndOfLine)
; Formatted Name
WriteString(plFile, "FN:"+*VCard\sFirstName+" "+*VCard\sLastName+psEndOfLine)
; Organization Name
If Len(*VCard\sSociety) > 0
WriteString(plFile, "ORG:"+*VCard\sSociety+psEndOfLine)
EndIf
; Title
If Len(*VCard\sTitle) > 0
WriteString(plFile, "TITLE:"+*VCard\sTitle+psEndOfLine)
EndIf
; Birthday
If Len(*VCard\sBirthday) > 0
WriteString(plFile, "BDAY:"+*VCard\sBirthday+psEndOfLine)
EndIf
; Mail
If Len(*VCard\sEMail) > 0
WriteString(plFile, "EMAIL"+psTypeStart+"INTERNET"+psTypeEnd+":"+*VCard\sEMail+psEndOfLine)
EndIf
; Note
If Len(*VCard\sNote) > 0
WriteString(plFile, "NOTE;ENCODING=QUOTED-PRINTABLE:"+*VCard\sNote+psEndOfLine)
EndIf
; URL
If *VCard\lURLNum > 0
For plInc = 0 To *VCard\lURLNum
Select *VCard\dimURL[plInc]\lUrlType
Case #VCard_UrlType_HOME : WriteString(plFile, "URL"+psTypeStart+"HOME"+psTypeEnd+":"+*VCard\dimURL[plInc]\sUrl+psEndOfLine)
Case #VCard_UrlType_WORK : WriteString(plFile, "URL"+psTypeStart+"WORK"+psTypeEnd+":"+*VCard\dimURL[plInc]\sUrl+psEndOfLine)
EndSelect
Next
EndIf
; Adresses
If *VCard\lAdressNum > 0
For plInc = 0 To *VCard\lAdressNum -1
plVarTmp = *VCard\dimAdress[plInc]\lAdressType
psVarTmp = ""
If plVarTmp & #VCard_AdressType_WORK
plVarTmp - #VCard_AdressType_WORK
psVarTmp + psTypeSeparator + "WORK"
EndIf
If plVarTmp & #VCard_AdressType_HOME
plVarTmp - #VCard_AdressType_HOME
psVarTmp + psTypeSeparator + "HOME"
EndIf
If plVarTmp & #VCard_AdressType_PARCEL
plVarTmp - #VCard_AdressType_PARCEL
psVarTmp + psTypeSeparator + "PARCEL"
EndIf
If plVarTmp & #VCard_AdressType_POSTAL
plVarTmp - #VCard_AdressType_POSTAL
psVarTmp + psTypeSeparator + "POSTAL"
EndIf
If plVarTmp & #VCard_AdressType_INTL
plVarTmp - #VCard_AdressType_INTL
psVarTmp + psTypeSeparator + "INTL"
EndIf
If plVarTmp & #VCard_AdressType_DOM
plVarTmp - #VCard_AdressType_DOM
psVarTmp + psTypeSeparator + "DOM"
EndIf
psVarTmp = Right(psVarTmp, Len(psVarTmp) - 1)
WriteString(plFile, "ADR"+psTypeStart+psVarTmp+psTypeEnd+":"+*VCard\dimAdress[plInc]\sPostOfficeBox+";"+*VCard\dimAdress[plInc]\sExtendAdress+";"+*VCard\dimAdress[plInc]\sStreet+";"+*VCard\dimAdress[plInc]\sLocality+";"+*VCard\dimAdress[plInc]\sRegion+";"+*VCard\dimAdress[plInc]\sPostalCode+";"+*VCard\dimAdress[plInc]\sCountryName+psEndOfLine)
Next
EndIf
; Phone Number
If *VCard\lPhoneNum > 0
For plInc = 0 To *VCard\lPhoneNum -1
plVarTmp = *VCard\dimPhoneNum[plInc]\lPhoneType
psVarTmp = ""
If plVarTmp & #VCard_PhoneType_VIDEO
plVarTmp - #VCard_PhoneType_VIDEO
psVarTmp + psTypeSeparator + "VIDEO"
EndIf
If plVarTmp & #VCard_PhoneType_ISDN
plVarTmp - #VCard_PhoneType_ISDN
psVarTmp + psTypeSeparator + "ISDN"
EndIf
If plVarTmp & #VCard_PhoneType_MODEM
plVarTmp - #VCard_PhoneType_MODEM
psVarTmp + ";MODEM"
EndIf
If plVarTmp & #VCard_PhoneType_CAR
plVarTmp - #VCard_PhoneType_CAR
psVarTmp + psTypeSeparator + "CAR"
EndIf
If plVarTmp & #VCard_PhoneType_BBS
plVarTmp - #VCard_PhoneType_BBS
psVarTmp + ";BBS"
EndIf
If plVarTmp & #VCard_PhoneType_PAGER
plVarTmp - #VCard_PhoneType_PAGER
psVarTmp + psTypeSeparator + "PAGER"
EndIf
If plVarTmp & #VCard_PhoneType_CELL
plVarTmp - #VCard_PhoneType_CELL
psVarTmp + psTypeSeparator + "CELL"
EndIf
If plVarTmp & #VCard_PhoneType_MSG
plVarTmp - #VCard_PhoneType_MSG
psVarTmp + psTypeSeparator + "MSG"
EndIf
If plVarTmp & #VCard_PhoneType_FAX
plVarTmp - #VCard_PhoneType_FAX
psVarTmp + psTypeSeparator + "FAX"
EndIf
If plVarTmp & #VCard_PhoneType_VOICE
plVarTmp - #VCard_PhoneType_VOICE
psVarTmp + psTypeSeparator + "VOICE"
EndIf
If plVarTmp & #VCard_PhoneType_HOME
plVarTmp - #VCard_PhoneType_HOME
psVarTmp + psTypeSeparator + "HOME"
EndIf
If plVarTmp & #VCard_PhoneType_WORK
plVarTmp - #VCard_PhoneType_WORK
psVarTmp + psTypeSeparator + "WORK"
EndIf
If plVarTmp & #VCard_PhoneType_PREF
plVarTmp - #VCard_PhoneType_PREF
psVarTmp + psTypeSeparator + "PREF"
EndIf
psVarTmp = Right(psVarTmp, Len(psVarTmp) - 1)
WriteString(plFile, "TEL"+psTypeStart+psVarTmp+psTypeEnd+":"+*VCard\dimPhoneNum[plInc]\sPhoneNumber+psEndOfLine)
Next
EndIf
; Revision
WriteString(plFile, "REV:"+FormatDate("%yyyy%mm%dd", Date())+"T"+FormatDate("%hh%ii%ss", Date())+"Z"+psEndOfLine)
; Mailer
If Len(*VCard\sMailer) > 0
WriteString(plFile, "MAILER:"+*VCard\sMailer+psEndOfLine)
EndIf
WriteString(plFile, "END:VCARD"+psEndOfLine)
CloseFile(plFile)
Else
ProcedureReturn #VCard_ErrorType_FileAccess
EndIf
EndProcedure
ProcedureDLL VCard_SetVersion(*VCard.S_VCard, Version.l = #VCard_Version_2_1)
*VCard\lVersion = Version
EndProcedure
ProcedureDLL VCard_SetName(*VCard.S_VCard, sFirstName.s, sLastName.s)
*VCard\sFirstName = sFirstName
*VCard\sLastName = sLastName
EndProcedure
ProcedureDLL VCard_SetBirthday(*VCard.S_VCard, lDate.l)
*VCard\sBirthday = FormatDate("%yyyy-%mm-%dd", lDate)
EndProcedure
ProcedureDLL VCard_SetAdress(*VCard.S_VCard, sPostOfficeBox.s, sExtendAdress.s, sStreet.s, sLocality.s, sRegion.s, sPostalCode.s, sCountryName.s, lType.l)
*VCard\dimAdress[*VCard\lAdressNum]\sPostOfficeBox = sPostOfficeBox
*VCard\dimAdress[*VCard\lAdressNum]\sExtendAdress = sExtendAdress
*VCard\dimAdress[*VCard\lAdressNum]\sStreet = sStreet
*VCard\dimAdress[*VCard\lAdressNum]\sLocality = sLocality
*VCard\dimAdress[*VCard\lAdressNum]\sRegion = sRegion
*VCard\dimAdress[*VCard\lAdressNum]\sPostalCode = sPostalCode
*VCard\dimAdress[*VCard\lAdressNum]\sCountryName = sCountryName
*VCard\dimAdress[*VCard\lAdressNum]\lAdressType = lType
*VCard\lAdressNum +1
EndProcedure
ProcedureDLL VCard_SetEmail(*VCard.S_VCard, sEMail.s)
*VCard\sEMail = sEMail
EndProcedure
ProcedureDLL VCard_SetNote(*VCard.S_VCard, sNote.s)
*VCard\sNote = sNote
EndProcedure
ProcedureDLL VCard_SetMailer(*VCard.S_VCard, sMailer.s)
*VCard\sMailer = sMailer
EndProcedure
ProcedureDLL VCard_SetURL(*VCard.S_VCard, sURL.s, lType)
*VCard\dimURL[*VCard\lURLNum]\sUrl = sURL
*VCard\dimURL[*VCard\lURLNum]\lUrlType = lType
*VCard\lURLNum +1
EndProcedure
ProcedureDLL VCard_SetPhoneNumber(*VCard.S_VCard, sPhoneNumber.s, lType.l)
*VCard\dimPhoneNum[*VCard\lPhoneNum]\sPhoneNumber = sPhoneNumber
*VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType = lType
*VCard\lPhoneNum +1
EndProcedure
ProcedureDLL VCard_SetJob(*VCard.S_VCard, sCompany.s, sJobName.s)
*VCard\sSociety = sCompany
*VCard\sTitle = sJobName
EndProcedure
ProcedureDLL VCard_Read(*VCard.S_VCard, sFilename.s)
Protected plFile.l
Protected plInc.l
Protected psLine.s
Protected psIdentifier.s
plFile = OpenFile(#PB_Any, sFilename)
If plFile
While Eof(plFile) = 0
psLine = ReadString(plFile)
psIdentifier = StringField(psLine, 1, ":")
If FindString(psIdentifier, ";", 0) > 0
psIdentifier = LCase(StringField(psIdentifier, 1, ";"))
Else
psIdentifier = LCase(psIdentifier)
EndIf
Select psIdentifier
Case "adr" ;{ Adress
For plInc = 2 To CountString(StringField(psLine, 1, ":"), ";")+1
Select LCase(StringField(StringField(psLine, 1, ":"), plInc, ";"))
Case "dom" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_DOM
Case "home" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_HOME
Case "intl" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_INTL
Case "parcel" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_PARCEL
Case "postal" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_POSTAL
Case "work" : *VCard\dimAdress[*VCard\lAdressNum]\lAdressType | #VCard_AdressType_WORK
EndSelect
Next
psLine = StringField(psLine, 2, ":")
*VCard\dimAdress[*VCard\lAdressNum]\sPostOfficeBox = StringField(psLine, 1, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sExtendAdress = StringField(psLine, 2, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sStreet = StringField(psLine, 3, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sLocality = StringField(psLine, 4, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sRegion = StringField(psLine, 5, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sPostalCode = StringField(psLine, 6, ";")
*VCard\dimAdress[*VCard\lAdressNum]\sCountryName = StringField(psLine, 7, ";")
*VCard\lAdressNum + 1
;}
Case "bday" ;{ BirthDay
*VCard\sBirthday = StringField(psLine, 2, ":")
;}
Case "begin" ;{ "BEGIN:VCARD"
;}
Case "email" ;{ EMail
*VCard\sEMail = StringField(psLine, 2, ":")
;}
Case "end" ;{ "END:VCARD"
;}
Case "fn" ;{
;}
Case "mailer" ;{ Mailer
*VCard\sMailer = StringField(psLine, 2, ":")
;}
Case "n" ;{ Name
psLine = StringField(psLine, 2, ":")
*VCard\sLastName = StringField(psLine, 1, ";")
*VCard\sFirstName = StringField(psLine, 2, ";")
;}
Case "note" ;{ Note
*VCard\sNote = StringField(psLine, 2, ":")
;}
Case "org" ;{ Company
*VCard\sSociety = StringField(psLine, 2, ":")
;}
Case "rev" ;{ Revision
*VCard\sRevision = StringField(psLine, 2, ":")
;}
Case "title" ;{ JobName
*VCard\sTitle = StringField(psLine, 2, ":")
;}
Case "tel" ;{ Phone
For plInc = 2 To CountString(StringField(psLine, 1, ":"), ";")+1
Select LCase(StringField(StringField(psLine, 1, ":"), plInc, ";"))
Case "bbs" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_BBS
Case "car" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_CAR
Case "cell" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_CELL
Case "fax" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_FAX
Case "isdn" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_ISDN
Case "home" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_HOME
Case "modem" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_MODEM
Case "msg" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_MSG
Case "pager" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_PAGER
Case "pref" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_PREF
Case "video" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_VIDEO
Case "voice" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_VOICE
Case "work" : *VCard\dimPhoneNum[*VCard\lPhoneNum]\lPhoneType | #VCard_PhoneType_WORK
EndSelect
Next
Debug StringField(psLine, 2, ":")
*VCard\dimPhoneNum[*VCard\lPhoneNum]\sPhoneNumber = StringField(psLine, 2, ":")
*VCard\lPhoneNum + 1
;}
Case "url" ;{ URL
plInc = FindString(psLine, ":", 0)
If plInc > 0
*VCard\dimURL[*VCard\lURLNum]\sUrl = Right(psLine, Len(psLine) - plInc)
Else
*VCard\dimURL[*VCard\lURLNum]\sUrl = ""
EndIf
For plInc = 2 To CountString(StringField(psLine, 1, ":"), ";")+1
Select LCase(StringField(StringField(psLine, 1, ":"), plInc, ";"))
Case "home" : *VCard\dimURL[*VCard\lURLNum]\lUrlType | #VCard_UrlType_HOME
Case "work" : *VCard\dimURL[*VCard\lURLNum]\lUrlType | #VCard_UrlType_WORK
EndSelect
Next
*VCard\lURLNum + 1
;}
Case "version" ;{ Version
If StringField(psLine, 2, ":") = "2.1"
*VCard\lVersion = #VCard_Version_2_1
ElseIf StringField(psLine, 2, ":") = "3.0"
*VCard\lVersion = #VCard_Version_3_0
EndIf
;}
Default :
Debug psIdentifier
Debug psLine
Debug "----"
;MessageRequester("VCard_Read", LCase(StringField(psLine, 1, ":")))
EndSelect
Wend
CloseFile(plFile)
Else
ProcedureReturn #VCard_ErrorType_FileAccess
EndIf
EndProcedure
ProcedureDLL VCard_GetVersion(*VCard.S_VCard)
ProcedureReturn *VCard\lVersion
EndProcedure
ProcedureDLL VCard_GetName(*VCard.S_VCard, *sFirstName, *sLastName)
PokeS(*sFirstName, *VCard\sFirstName)
PokeS(*sLastName, *VCard\sLastName)
EndProcedure
ProcedureDLL VCard_GetBirthday(*VCard.S_VCard, *lDate)
PokeL(*lDate, ParseDate("%yyyy-%mm-%dd", *VCard\sBirthday))
EndProcedure
ProcedureDLL VCard_GetNumAdress(*VCard.S_VCard)
ProcedureReturn *VCard\lAdressNum
EndProcedure
ProcedureDLL VCard_GetAdress(*VCard.S_VCard, lIndex.l, *sPostOfficeBox, *sExtendAdress, *sStreet, *sLocality, *sRegion, *sPostalCode, *sCountryName, *lType)
PokeS(*sPostOfficeBox, *VCard\dimAdress[lIndex]\sPostOfficeBox)
PokeS(*sExtendAdress, *VCard\dimAdress[lIndex]\sExtendAdress)
PokeS(*sStreet, *VCard\dimAdress[lIndex]\sStreet)
PokeS(*sLocality, *VCard\dimAdress[lIndex]\sLocality)
PokeS(*sRegion, *VCard\dimAdress[lIndex]\sRegion)
PokeS(*sPostalCode, *VCard\dimAdress[lIndex]\sPostalCode)
PokeS(*sCountryName, *VCard\dimAdress[lIndex]\sCountryName)
PokeL(*lType, *VCard\dimAdress[lIndex]\lAdressType)
EndProcedure
ProcedureDLL VCard_GetEmail(*VCard.S_VCard, *sEMail)
PokeS(*sEMail, *VCard\sEMail)
EndProcedure
ProcedureDLL VCard_GetNote(*VCard.S_VCard, *sNote)
PokeS(*sNote, *VCard\sNote)
EndProcedure
ProcedureDLL VCard_GetMailer(*VCard.S_VCard, *sMailer)
PokeS(*sMailer, *VCard\sMailer)
EndProcedure
ProcedureDLL VCard_GetNumURL(*VCard.S_VCard)
ProcedureReturn *VCard\lURLNum
EndProcedure
ProcedureDLL VCard_GetURL(*VCard.S_VCard, lIndex.l, *sURL, *lType)
PokeS(*sURL, *VCard\dimURL[lIndex]\sUrl)
PokeL(*lType, *VCard\dimURL[lIndex]\lUrlType)
EndProcedure
ProcedureDLL VCard_GetNumPhoneNumber(*VCard.S_VCard)
ProcedureReturn *VCard\lPhoneNum
EndProcedure
ProcedureDLL VCard_GetPhoneNumber(*VCard.S_VCard, lIndex.l, *sPhoneNumber, *lType)
PokeS(*sPhoneNumber, *VCard\dimPhoneNum[lIndex]\sPhoneNumber)
PokeL(*lType, *VCard\dimPhoneNum[lIndex]\lPhoneType)
EndProcedure
ProcedureDLL VCard_GetJob(*VCard.S_VCard, *sCompany, *sJobName)
Debug "------>"+*VCard\sTitle
Debug *VCard\dimPhoneNum[0]\sPhoneNumber
Debug *VCard\dimPhoneNum[1]\sPhoneNumber
PokeS(*sCompany, *VCard\sSociety, Len(*VCard\sSociety)+1)
PokeS(*sJobName, *VCard\sTitle)
Debug "------>"+*VCard\sTitle
Debug *VCard\dimPhoneNum[0]\sPhoneNumber
Debug *VCard\dimPhoneNum[1]\sPhoneNumber
EndProcedure
MyCardWrite.S_VCard
VCard_SetName(@MyCardWrite, "Franck", "LEFEVRE")
VCard_SetBirthday(@MyCardWrite, Date(1984, 11, 30, 0, 0, 0))
VCard_SetEmail(@MyCardWrite, "progi1984@gmail.com")
VCard_SetJob(@MyCardWrite, "RootsLabs", "Web & PB Developper")
VCard_SetNote(@MyCardWrite, "Test Note")
VCard_SetMailer(@MyCardWrite, "PBMailer")
VCard_SetURL(@MyCardWrite, "http://www.rootslabs.net", #VCard_UrlType_HOME)
VCard_SetURL(@MyCardWrite, "http://www.rootslabs.net", #VCard_UrlType_WORK)
VCard_SetPhoneNumber(@MyCardWrite, "00 11 22 33 44", #VCard_PhoneType_WORK | #VCard_PhoneType_PAGER)
VCard_SetPhoneNumber(@MyCardWrite, "55 66 77 88 99", #VCard_PhoneType_HOME | #VCard_PhoneType_VOICE)
VCard_SetPhoneNumber(@MyCardWrite, "06 88 77 66 55", #VCard_PhoneType_CELL | #VCard_PhoneType_MSG | #VCard_PhoneType_PREF)
VCard_SetAdress(@MyCardWrite, "","","2, rue des Etoiles","La Haye-Pesnel","Manche","50320","France", #VCard_AdressType_HOME)
VCard_SetAdress(@MyCardWrite, "","","1, rue du Port","Caen","Calvados","14000","France", #VCard_AdressType_WORK)
VCard_SetVersion(@MyCardWrite, #VCard_Version_2_1) : VCard_Write(@MyCardWrite, "MyCardWrite_2_1.vcf")
VCard_SetVersion(@MyCardWrite, #VCard_Version_3_0) : VCard_Write(@MyCardWrite, "MyCardWrite_3_0.vcf")
MyCardRead21.S_VCard
MyCardRead30.S_VCard
VCard_Read(@MyCardRead21, "MyCardWrite_2_1.vcf")
VCard_Read(@MyCardRead30, "MyCardWrite_3_0.vcf")
Define.s sFirstName = ""
Define.s sLastName = ""
Define.l lDate = $0
Define.s sEmail = ""
Define.s sCompany = ""
Define.s sJobName = ""
Define.s sNote = ""
Define.s sMailer = ""
Define.s sURL = ""
Define.l lURLType = $0
Define.s sPhoneNumber = ""
Define.l lPhoneNumberType = $0
Define.s sPostOfficeBox.s = ""
Define.s sExtendAdress.s = ""
Define.s sStreet.s = ""
Define.s sLocality.s = ""
Define.s sRegion.s = ""
Define.s sPostalCode.s = ""
Define.s sCountryName.s = ""
Define.l lAdressType = $0
Debug "21"
; VCard_GetName(@MyCardRead21, @sFirstName, @sLastName)
; Debug "FirstName>"+sFirstName
; Debug "LastName>"+sLastName
; VCard_GetBirthday(@MyCardRead21, @lDate)
; Debug "Date>"+FormatDate("%yyyy-%mm-%dd", lDate)
; VCard_GetEmail(@MyCardRead21, @sEmail)
; Debug "Email > " + sEmail
VCard_GetJob(@MyCardRead21, @sCompany, @sJobName)
Debug "Company > " + sCompany
Debug "JobName > " + sJobName
; For i = 0 To VCard_GetNumURL(@MyCardRead21) -1
; VCard_GetURL(@MyCardRead21, i, @sURL, @lURLType)
; Debug "URL #"+Str(i)+"<"+Str(lURLType)+">"+sURL
; Next
For i = 0 To VCard_GetNumPhoneNumber(@MyCardRead21) -1
VCard_GetPhoneNumber(@MyCardRead21, i, @sPhoneNumber, @lPhoneNumberType)
Debug "PhoneNum #"+Str(i)+"<"+Str(lPhoneNumberType)+">"+sPhoneNumber
Next
; For i = 0 To VCard_GetNumAdress(@MyCardRead21) -1
; VCard_GetAdress(@MyCardRead21, i, @sPostOfficeBox, @sExtendAdress, @sStreet, @sLocality, @sRegion, @sPostalCode, @sCountryName, @lAdressType)
; Debug "Adress #"+Str(i)+"<"+Str(lAdressType)+">"
; Debug "PostOfficeBox > "+sPostOfficeBox
; Debug "ExtendAdress > "+sExtendAdress
; Debug "Street > "+sStreet
; Debug "Locality > "+sLocality
; Debug "Region > "+sRegion
; Debug "PostalCode > "+sPostalCode
; Debug "CountryName > "+sCountryName
; Next
; VCard_GetMailer(@MyCardRead21, @sMailer)
; Debug "Mailer>"+sMailer
; VCard_GetNote(@MyCardRead21, @sNote)
; Debug "Note>"+sNote
;
; Debug "30"
; VCard_GetName(@MyCardRead30, @sFirstName, @sLastName)
; Debug "FirstName>"+sFirstName
; Debug "LastName>"+sLastName
; VCard_GetBirthday(@MyCardRead30, @lDate)
; Debug "Date>"+FormatDate("%yyyy-%mm-%dd", lDate)
; VCard_GetEmail(@MyCardRead30, @sEmail)
; Debug "Email > " + sEmail
; VCard_GetJob(@MyCardRead30, @sCompany, @sJobName)
; Debug "Company > " + sCompany
; Debug "JobName > " + sJobName
; For i = 0 To VCard_GetNumURL(@MyCardRead21) -1
; VCard_GetURL(@MyCardRead30, i, @sURL, @lURLType)
; Debug "URL #"+Str(i)+"<"+Str(lURLType)+">"+sURL
; Next
; For i = 0 To VCard_GetNumPhoneNumber(@MyCardRead30) -1
; VCard_GetPhoneNumber(@MyCardRead30, i, @sPhoneNumber, @lPhoneNumberType)
; Debug "PhoneNum #"+Str(i)+"<"+Str(lPhoneNumberType)+">"+sPhoneNumber
; Next
; For i = 0 To VCard_GetNumAdress(@MyCardRead30) -1
; VCard_GetAdress(@MyCardRead30, i, @sPostOfficeBox, @sExtendAdress, @sStreet, @sLocality, @sRegion, @sPostalCode, @sCountryName, @lAdressType)
; Debug "Adress #"+Str(i)+"<"+Str(lAdressType)+">"
; Debug "PostOfficeBox > "+sPostOfficeBox
; Debug "ExtendAdress > "+sExtendAdress
; Debug "Street > "+sStreet
; Debug "Locality > "+sLocality
; Debug "Region > "+sRegion
; Debug "PostalCode > "+sPostalCode
; Debug "CountryName > "+sCountryName
; Next
; VCard_GetMailer(@MyCardRead30, @sMailer)
; Debug "Mailer>"+sMailer
; VCard_GetNote(@MyCardRead30, @sNote)