PDA

Voir la version complète : Convertir du format CSV en vCard



AlphaFrancois
04/04/2011, 09h57
Bonjour tout le monde, comme je n'ai pas trouvé mon bonheur parmis les sujets déjà présent, j'ai donc décidé de créer ce topic pour demander si l'un d'entre vous ne connaitrais pas un logiciel ou autre moyen de convertir un fichier au format csv en format vcard. En effet, je possède des téléphones Siemens qui ne supporte pour leurs carnets d'adresses qu'un format .vcf et comme il est plus aisé de créer un carnet d'adresses en .csv, j'aimerais savoir quel logiciel utiliser surtout s'il y a plus de 100 numéros dans le répertoire. Rentrer un répertoire complet depuis un combiné :pt1cable: alors que se serait si pratique d'utiliser un bon vieux PC. :tongue: Merci d'avance pour vos réponses

yazul
06/05/2011, 15h51
J'ai déjà transformé un fichier de contacts (affichés dans une page HTML sous forme de tableaul, donc assez proche du csv) en format VCARD.

Assez simple à réaliser, j'ai fais ça en JavaScript.

Voici le code :


vcfs= "";
eol="\n";
numlig= 0;
while (numlig<nbrlig) {
fields= tablig[numlig].split('§');
w_nom= fields[0];
w_prenom= fields[1];
w_datenaissance= fields[2];
w_email= fields[3];
w_telfixe= fields[4];
w_mobile= fields[5];
w_adresse= fields[6];
w_codepostal= fields[7];
w_ville= fields[8];
w_codeffe= fields[9];
vcf= "";
vcf= vcf + "BEGIN:VCARD" + eol;
vcf= vcf + "VERSION:3.0" + eol;
vcf= vcf + "FN:" + w_nom + ", " + w_prenom + eol;
vcf= vcf + "N:" + w_nom + ";" + w_prenom + eol;
tab_mails= w_email.split(',');
nbrmail= tab_mails.length;
nummail= 0;
while (nummail < nbrmail) {
w_email= tab_mails[nummail];
if (w_email.length) vcf= vcf + "EMAIL;TYPE=HOME;TYPE=INTERNET:" + w_email + eol;
nummail++;
}
if (w_telfixe.length) vcf= vcf + "TEL;TYPE=HOME;VOICE:" + w_telfixe.replace(/^0/, "+33 ") + eol;
if (w_mobile.length) vcf= vcf + "TEL;TYPE=CELL;VOICE:" + w_mobile.replace(/^0/, "+33 ") + eol;
vcf= vcf + "ADR;TYPE=HOME;ENCODING=QUOTED-PRINTABLE:;" + w_adresse + "=0D=0A" + w_codepostal +" "+ w_ville + eol;
vcf= vcf + "BDAY:" + w_datenaissance + eol;
if (w_codeffe.length) vcf= vcf + "NOTE:" + "FFE: " + w_codeffe + eol;
vcf= vcf + "END:VCARD" + eol;
vcfs= vcfs + vcf;
numlig++;
}
form.elements[textarea].value= vcfs;


Le principe : chaque ligne contient les champs séparés par le caractère "§" (à remplacer par le ";" de csv).
Le résultat est placé dans une variable "vcfs" qui est ré-affichée à l'écran.

Bon, c'est un exemple de la méthode à utiliser.