Chaine et Ecrasement de zone mémoire
Publié : mar. 01/sept./2009 10:25
Bonjour, en fait, j'ai une chaine qui se fait écraser par une autre. Je sais, cela n'est pas trés explicite mais lancez ce code et vous verrez.
Pour infos, ce code génère deux fichiers VCard et les lit juste aprés.
Merci d'avance de votre aide.
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)