logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 29-04-2024 08:51:01

cledefa49
Membre
Lieu : Anjou
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Linux 6.1.0-17-amd64
(G)UI : Gnome
Inscription : 08-11-2017

[RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour

Je me demandais si un script de genre n'avait pas déjà été développé par l'un ou l'autre.
Pour une association, j'ai mis en place un mail chez Proton. L'export des contacts se fait en un fichier .vcf uniquement
Pour le charger dans LibreOffice Calc il serait bien de le convertir en un fichier .csv

Sur le net, je n'ai trouvé que des convertisseurs en ligne. Comment être sûr de préserver les données des adhérents ?

Fut un temps où ce développement ne m'aurait pas fait peur, mais j'étais jeune......

Alors si quelqu'un pouvait m'aider, je lui en serai très reconnaissant.

Bonne journée.

Dernière modification par cledefa49 (01-05-2024 08:51:54)


Bon, eh bien je vais partir en Théorie, parce que "en théorie, tout se passe bien"
(Mais je ne sais pas de qui est cette citation ...)

Hors ligne

#2 29-04-2024 09:58:38

mister_g
Membre
Distrib. : debian sid
Noyau : Linux 6.11.7-amd64
(G)UI : fluxbox
Inscription : 20-07-2022

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour,
le fichier VCF contient une partie texte avec des balises décrivant chaque contact.
tu peux en ouvrir un avec libre office et voir la structure :

BEGIN:VCARD
VERSION:3.0
N:Velo;Alex;;;
FN:Alex Velo
TEL;TYPE=CELL:06x-xxx-xxxx
END:VCARD
BEGIN:VCARD
VERSION:3.0
N:Bill;Boule;Et;;
FN:Boule Et Bill
TEL;TYPE=CELL:06x-xxx-xxxx
TEL;TYPE=HOME:0xx-xxx-xxxx
END:VCARD

ensuite tu peux faire un script pour éliminer les lignes inutiles et mettre un contact sur une ligne.
un script bash ou python devrait faire cela sans trop de galère surtout si tu as fait du dev dans ta jeunesse  smile

Hors ligne

#3 29-04-2024 12:30:14

dezix
Membre
Distrib. : Debian stable
Noyau : Linux amd64 (stable)
(G)UI : XFCE4
Inscription : 19-02-2018

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour,

Si le fichier s'ouvre avec LibreOfficeCalc alors : Enregistrer sous > CVS wink

Exemple de tuto (traduit)

Conversion de VCF en CSV à l'aide d'un tableur

Pour convertir un fichier VCF en fichier CSV à l'aide d'un tableur, procédez comme suit :

1. Ouvrez votre tableur préféré (par exemple, Microsoft Excel, Google Sheets).
2. Importez le fichier VCF en sélectionnant l'option appropriée dans le menu d'importation ou la barre d'outils.
3. Suivez les invites guidées pour assurer une correspondance correcte entre les champs du fichier VCF et les colonnes du fichier CSV. Cette étape est cruciale pour préserver toutes les informations requises au cours du processus de conversion.
4. Une fois le mappage terminé, procédez à l'importation. Le tableur convertira le fichier VCF en format CSV, en préservant la structure et l'intégrité des informations de contact.
5. Enregistrez le fichier CSV converti à l'emplacement de votre choix pour une utilisation ultérieure.

Dernière modification par dezix (29-04-2024 12:30:45)

Hors ligne

#4 29-04-2024 15:53:42

brennux
Adhérent(e)
Lieu : France
Distrib. : Debian-facile 11 (bullseye)
Noyau : 5.10.0-26-amd64
(G)UI : Xfce
Inscription : 21-04-2020

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour,

dezix a écrit :

Exemple de tuto


j'ai du mal à comprendre comment la méthode indiquée permet de passer de la structure verticale d'un fichier VCF (voir l'exemple donné par mister_g) à la structure en colonnes d'un fichier CSV.
Ce passage par exemple ne semble pas applicable tel quel à LibreOffice Calc

dezix a écrit :

en sélectionnant l'option appropriée dans le menu d'importation


Calc ne propose aucun filtre de fichiers vCard.

Je ne demande qu'à comprendre, ça pourrait être utile un jour.


Aucune idole, vivante, statufiée ou immatérielle.
Xfce, style Numix, icônes Tango

Hors ligne

#5 29-04-2024 16:56:48

dezix
Membre
Distrib. : Debian stable
Noyau : Linux amd64 (stable)
(G)UI : XFCE4
Inscription : 19-02-2018

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Si ça fonctionne, j'ai créé un fichier avec l''exemple ci-dessous extrait de : vCard — Wikipédia

vCard 4.0 (2011) :



BEGIN:VCARD
VERSION:4.0
N:Gump;Forrest;;Mr.;
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212
TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212
ADR;TYPE=WORK;PREF=1;LABEL="100 Waters Edge\nBaytown\n, LA 30314\nUnited States of America":;;100 Waters Edge;Baytown;LA;30314;United States of America
ADR;TYPE=HOME;LABEL="42 Plantation St.\nBaytown\, LA 30314\nUnited States of America":;;42 Plantation St.;Baytown;LA;30314;United States of America
EMAIL:forrestgump@example.com
REV:20080424T195243Z
x-qq:21588891
END:VCARD
 



qui est déjà quasiment un tableau séparé par virgules (.csv)

et comme les gens qui travaillent (dev) sur LibreOfficeCalc ne sont pas des billes...
... il suffit d'ouvrir le fichier : test.cvf
puis comme d'écrit dans ma précédente citation traduite,
l'étape 3 correspond au dialogue qui s'ouvre pour configurer la conversion :
LibreOfficeCalc > Importation

Avant ou après selon ce qu'on veut au final, la commande sed ou la fonction remplacement de l'éditeur permettra de faire du ménage si nécessaire.

Hors ligne

#6 29-04-2024 20:46:42

èfpé
Membre
Inscription : 10-07-2016

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

brennux a écrit :

Calc ne propose aucun filtre [de conversion] de fichiers vCard.


Effectivement le résultat est inexploitable. Or si un tel filtre existait, il serait documenté (ici et/ou ).
Une proposition cohérente et relativement satisfaisante, semble-t-il, est de passer par Thunderbird.

Hors ligne

#7 29-04-2024 21:00:33

cledefa49
Membre
Lieu : Anjou
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Linux 6.1.0-17-amd64
(G)UI : Gnome
Inscription : 08-11-2017

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Alors j'ai tenté d'écrire un script mais ça ne fonctionne pas bien.
Quand je l'exécute il ne me récupère plus que les Catégories et je ne vois pas où est mon problème.

Je vous laisse le code; oui ce n'est pas beau, mais je tente.
Si vous avez un peu de temps pour m'expliquer où sont mes bêtises, cela me permettra d'apprendre encore un peu.

En tout cas merci de m'avoir lu

!/bin/bash

while read Line
do
        if [[ $Line == BEGIN* ]]
        then
                Nom=""
                E_Mail=""
                TelPortable=""
                TelMaison=""
                Adresse=""
                Categorie=""
                while read Line
                do
                        if [[ $Line == N\;PREF=1* ]]
                        then
                                Nom=`echo $Line | awk -F":" '{print $2}'`
                        elif [[ $Line == ITEM1\;EMAI* ]]
                        then
                                E_Mail=`echo $Line | awk -F":" '{print $2}'`
                        elif [[ $Line == TEL\;TYPE=cell* ]]
                        then
                                TelPortable=`echo $Line | awk -F":" '{print $2}'`
                        elif [[ $Line == TEL\;TYPE=home* ]]
                        then
                                TelMaison=`echo $Line | awk -F":" '{print $2}'`
                        elif [[ $Line == ADR\;PREF=1* ]]
                        then
                                Adresse=`echo $Line | awk -F":" '{print $4, $7, $5}'`
                        elif [[ $Line == ITEM1.CATEGORIES* ]]
                        then
                                Categorie=`echo $Line | awk -F":" '{print $2}'`
                        elif [[ $Line == END* ]]
                        then
                                echo "$Nom;$E_Mail;$TelPortable;$TelMaison;$Adresse;$Categorie"
                                break
                        fi
                done
        fi

done < protonContacts-2024-04-01.vcf
 


Bon, eh bien je vais partir en Théorie, parce que "en théorie, tout se passe bien"
(Mais je ne sais pas de qui est cette citation ...)

Hors ligne

#8 30-04-2024 17:29:49

brennux
Adhérent(e)
Lieu : France
Distrib. : Debian-facile 11 (bullseye)
Noyau : 5.10.0-26-amd64
(G)UI : Xfce
Inscription : 21-04-2020

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour,

dezix a écrit :

quasiment un tableau séparé par virgules


désolé d'insister, mais le test avec un fichier .VCF et son résultat importé ne permet pas de gérer une liste d'adresses.
- les balises définissant les champs sont toutes dans la première colonne
- les valeurs du champ sont certes sur la même ligne que le nom champ, mais les remettre en colonnes demande un important travail de redressement

Effectivement, le passage par Thunderbird (ou autre courrielleur ?) permet de passer du carnet d'adresses au tableau en 3 étapes.

Proton > export .vcf > importer dans Thunderbird > exporter en texte tabulé > ouvrir dans Calc avec le séparateur tabulations


Aucune idole, vivante, statufiée ou immatérielle.
Xfce, style Numix, icônes Tango

Hors ligne

#9 30-04-2024 20:43:09

dezix
Membre
Distrib. : Debian stable
Noyau : Linux amd64 (stable)
(G)UI : XFCE4
Inscription : 19-02-2018

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Salut !

brennux a écrit :

désolé d'insister


... Ne sois pas désolé, tu as raison yes.gif

Hors ligne

#10 30-04-2024 20:53:54

dezix
Membre
Distrib. : Debian stable
Noyau : Linux amd64 (stable)
(G)UI : XFCE4
Inscription : 19-02-2018

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

cledefa49 a écrit :

Bon, eh bien je vais partir en Théorie, parce que "en théorie, tout se passe bien"
(Mais je ne sais pas de qui est cette citation ...)


ça doit être de Pierre Desproges... je le croisais de temps à autre, il perchait en bas de ma rue wink

Hors ligne

#11 01-05-2024 08:50:52

cledefa49
Membre
Lieu : Anjou
Distrib. : Debian GNU/Linux 12 (bookworm)
Noyau : Linux 6.1.0-17-amd64
(G)UI : Gnome
Inscription : 08-11-2017

Re : [RÉSOLU] Conversion d'un fichier VCF en c CSV

Bonjour.
je viens de faire le test via Thunderbird et ça marche très bien.
Pour mon script, je ne comprends pas mes erreurs; les informations décodées semblent s'écraser les unes après les autres
ce qui fait que je ne récupère que la dernière (Catégorie) alors que dans chaque portion des if/elif je récupère ce qu'il faut....

Mais puisqu'avec Thunderbird c'est OK, je classe en "Résolu"

Merci encore à vous.

Bon, eh bien je vais partir en Théorie, parce que "en théorie, tout se passe bien"
(Mais je ne sais pas de qui est cette citation ...)

Hors ligne

Pied de page des forums