IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Traitement d'un fichier ics (iCalendar)


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut Traitement d'un fichier ics (iCalendar)
    Bonjour,

    Existe-t-il des fonctions pour parcourir et traiter les fichiers ics (comme cela existe pour les fichiers xml) ?

    Dans la même optique, existe-t-il des fonctions pour directement insérer des évènement au format ics dans le calendrier (agenda) ?

    Quelqu'un aurait-il un exemple de code qui traite les rendez-vous (évènements) de l'agenda ?

    Merci d'avance.

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut
    Bonjour,
    Je crois que tu vas être content ;-)
    y'a une API écrit en Java : iCal4j qui contient ce qu'il faut pour parser un fichier ics et même faire l'opération inverse càd créer des fichier ics. Utile si tu veux des opérations d'import/export de fichier en ics.

    Cette API est en Open Source et documenté, le forum bouge pas mal dans le sens où les gens répondent aux questions

    Je te donne le lien sans trop tarder:
    http://ical4j.sourceforge.net/introduction.html

    t'as accès au Wiki, documentation, sources, forum...

    --
    Bouchra

  3. #3
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Merci beaucoup !

    En fait j'allais commencer à écrire une procédure qui lit le fichier ics et en tire les différents event... Autant utiliser la librairie !

  4. #4
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Pour ceux que ça intéresse, et étant donné que j'ai cherché un peu avant de trouver, pour importer cette librairie dans son projet, il faut :
    1. cliquer droit sur le projet (dans eclipse, fenêtre projets)
    2. cliquer sur "properties"
    3. dans la fenêtre qui s'ouvre, sélectionner à gauche "java build path"
    4. à droite, cliquer sur le bouton "Add External JARs"
    5. donner le chemin vers le fichier .jar et valider, puis OK

  5. #5
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Encore merci pour cette info bellach, j'ai enfin réussi à faire un code qui est censé (pas encore testé) récupérer les EVENts d'un fichier ics et mettre certains champs dans une chaine pour un affichage.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    // Parsing du fichier ics : créé l'arborescence avec les events
    //try {
    	//FileInputStream fin = new FileInputStream("planning.ics");
    	CalendarBuilder builder = new CalendarBuilder();
    	try {
    		//Calendar calendar = builder.build(fin);
        	        Calendar calendar = builder.build(getResources().openRawResource(R.raw.planning));
        	        StringBuilder b = new StringBuilder();
        	        for (Object event : calendar.getComponents(Component.VEVENT)) {
        		        if (((VEvent) event).getSummary() != null) {
        			        b.append("\n\n");
        			        b.append(((VEvent) event).getSummary().getValue());
        			        b.append(": ");
        			        b.append(((VEvent) event).getStartDate().getDate());
    				// ou traitement du rendez-vous dont le champ SUMMARY n'est pas vide
                            }
        		}
        	}
    	} catch (IOException e) {
    		// Erreur : I/O
    		Toast.makeText(getApplicationContext(), "Erreur : IOException", Toast.LENGTH_LONG).show();
    	} catch (ParserException e) {
    		// Erreur de parsing (donnée lue non valide)
    		Toast.makeText(getApplicationContext(), "Erreur : Parser", Toast.LENGTH_LONG).show();
    	}
    //} catch (FileNotFoundException e1) {
    //	// Erreur : le fichier n'existe pas
    //	Toast.makeText(getApplicationContext(), "Erreur : fichier inexistant", Toast.LENGTH_LONG).show();
    //}
    NB : il faut ajouter la librairie commons-lang-2.4.jar de la même manière que ical4j.jar. J'ai aussi laissé en commentaire le code pour effectuer le parsing à partir d'un fichier ics (sinon le fichier planning.ics doir être placé dans le répertoire raw.

    Il faudra importer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import net.fortuna.ical4j.data.CalendarBuilder;
    import net.fortuna.ical4j.data.ParserException;
    import net.fortuna.ical4j.model.Calendar;
    import net.fortuna.ical4j.model.Component;
    import net.fortuna.ical4j.model.component.VEvent;

  6. #6
    Membre confirmé Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Par défaut
    Malheureusement, après de nombreux essais, impossible de faire fonctionner cette librairie (problème au niveau d'Eclipse ?).

    Je jette l'éponge, j'y ai passé trop de temps, je vais développer moi même la fonction de parcours du fichier ics, finalement ce n'est pas très compliqué.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement de gros fichiers
    Par Seth77 dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 15h53
  2. Java et XML : Traitement d'un fichier XML avec JAVA
    Par nice dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 18/05/2006, 21h24
  3. [INFO] Traitement d'un fichier texte
    Par doudine dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 25/04/2006, 09h23
  4. [VBA-E]Traitement d'un fichier excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2006, 14h28
  5. [C#] [XML] Traitement de gros fichiers XML (90 Mo)
    Par Pulsahr dans le forum Windows Forms
    Réponses: 20
    Dernier message: 01/12/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo