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 :

Comparer 2 fichiers ics et retourner différences


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Comparer 2 fichiers ics et retourner différences
    Bonjour,

    voici mon problème, nous avons un projet à réaliser pour ma 2ème et dernière année de SRC, et nous avons choisis de développer une application mobile pour Android.

    Le but est de notifier l'utilisateur lorsque l'emploi du temps est modifié. Cet emploi du temps est un fichier ics, voici un exemple du contenu de ce fichier :

    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
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//hacksw/handcal//NONSGML v1.0//EN
    X-WR-TIMEZONE:Europe/Paris
    BEGIN:VEVENT
    UID:20110921T081500-624@gestionedt.emploisdutempssrc.com
    DTSTART;TZID=Europe/Paris:20110921T081500
    DTEND;TZID=Europe/Paris:20110921T101500
    SUMMARY:  CM Reseaux AmphiSRC
    END:VEVENT
    BEGIN:VEVENT
    UID:20110923T134500-702@gestionedt.emploisdutempssrc.com
    DTSTART;TZID=Europe/Paris:20110923T134500
    DTEND;TZID=Europe/Paris:20110923T154500
    SUMMARY:  CM Numerisation AmphiSRC
    END:VEVENT
    Mon problème est donc le suivant : comment faire pour découper ce fichier en un ensemble de blocs (qui sont donc pour chaque BEGIN:VEVENT jusqu'à END:VEVENT pour un seul cours, en gros, je veux pouvoir découper tous les blocs de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BEGIN:VEVENT
    UID:20110923T134500-702@gestionedt.emploisdutempssrc.com
    DTSTART;TZID=Europe/Paris:20110923T134500
    DTEND;TZID=Europe/Paris:20110923T154500
    SUMMARY:  CM Numerisation AmphiSRC
    END:VEVENT
    Donc déjà, est-ce possible ? Si oui, par quel procédé ?

    Et comment ensuite comparer 2 fichiers et s'il y'a une différence afficher par exemple le bloc qui a changé ne serais-ce tout d'abord que dans un lineartext ou quelque chose comme ça ?

    Si vous avais une idée, je vous en serais reconnaissant, un peu bloqué et pas moyen de trouver quelque chose de cohérent à ce que je cherche sur le net =/..

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Donc déjà, est-ce possible ? Si oui, par quel procédé ?
    Euh , ben c'est à toi de créer une méthode de lecture ...

    Pour cela regarde ici :
    http://developer.android.com/referen...ng/String.html

    find, compare, ...

    Après si tu veux optimiser tu peux utiliser sed ou awk (euh il faudrait vérifier que cela soit disponible) via un appel par le Runtime.
    http://developer.android.com/referen...g/Runtime.html
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Merci pour les liens Feanorin,

    j'y ai jeté un oeil, et j'ai cru apercevoir la méthode public int compareTo (String string), est-ce que ça correspondrait à ton avis ?

    J'ai trouvé aussi une méthode de lecture posté par un membre sur un autre topic, voici le 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    public void ParcoursICS() {
    // Parcours le fichier ics et récupère les rendez-vous
     
    	try {
    		// ouverture du fichier texte (.ics)
    		BufferedReader planning = new BufferedReader(new  FileReader("planning.ics"));
    		ligne = planning.readLine();
    		while (!ligne.equalsIgnoreCase("END:VCALENDAR") && ligne != null) {
    			if (ligne.equalsIgnoreCase("BEGIN:VEVENT")) {
    				// Rendez-vous à prendre en compte
    				ligne = planning.readLine();
    				while (!ligne.equalsIgnoreCase("END:VEVENT")) {
    					// récupération des informations utiles
    					if (ligne.equalsIgnoreCase("DTSTART")) {
    						// date et heure de début du rendez-vous
     
    					}
    					else if (ligne.equalsIgnoreCase("DTEND")) {
    						// date et heure de fin du rendez-vous
     
    					}
    					else if (ligne.equalsIgnoreCase("LOCATION")) {
    						// lieu du début du rendez-vous
     
    					}
    					else if (ligne.equalsIgnoreCase("DTSTAMP")) {
    						// date et heure de création du planning (utile pour savoir s'il a été modifié)
     
    					}
    					else if (ligne.equalsIgnoreCase("DESCRIPTION")) {
    						// description du rendez-vous (avec coordonnées PEQ)
     
    					}
    					else if (ligne.equalsIgnoreCase("SUMMARY")) {
    						// numéro de vol ou type de rendez-vous (hotel par exemple)
     
    					}
    					ligne = planning.readLine();
    				}
    				// traitement du rendez-vous : 1. mise en forme en fct des options, 2. création du rendez-vous dans l'agenda
     
    			}
    			ligne = planning.readLine();
    		}
     
    	}
    	catch (FileNotFoundException e1) {
    		// Erreur : le fichier n'existe pas
    		Toast.makeText(getApplicationContext(), "Erreur : fichier ics inexistant", Toast.LENGTH_LONG).show();
    	} catch (IOException e) {
    		// Erreur : problème de lecture fichier
    		Toast.makeText(getApplicationContext(), "Erreur : problème de lecture du fichier ics", Toast.LENGTH_LONG).show();
    	}
    }
    Mais, comment je peux faire pour comparer 2 fichiers en les utilisant dans le bufferedReader ?? Désolé je suis débutant dans le domaine, c'est ma 1ère application et certains choses sont encore abstraites pour moi =/...

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    j'y ai jeté un oeil, et j'ai cru apercevoir la méthode public int compareTo (String string), est-ce que ça correspondrait à ton avis ?
    Oui , de même pour les equalsIgnoreCase.

    Mais, comment je peux faire pour comparer 2 fichiers en les utilisant dans le bufferedReader ?? Désolé je suis débutant dans le domaine, c'est ma 1ère application et certains choses sont encore abstraites pour moi
    C'est bien la voie à prendre, il me semble qu'il n'existe pas de fonction de la classe File te permettant cela il faut bien passer par les reader , et comparer les valeurs.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je suis étudiant en R&T Web et j'ai exactement le même projet à faire.
    Si tu veux qu'on en discute ensemble, histoire de s'aider mutuellement ? lol

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/07/2014, 11h09
  2. Comparer 2 fichiers texte et récupérer la différence
    Par olivier1209 dans le forum VBScript
    Réponses: 6
    Dernier message: 12/08/2011, 04h22
  3. 2 tables; requête : retourner différences entre les 2
    Par azerty dans le forum Langage SQL
    Réponses: 15
    Dernier message: 09/09/2003, 18h35
  4. [LG][FAQ]comparer des fichiers
    Par lucke dans le forum Langage
    Réponses: 11
    Dernier message: 01/06/2003, 18h02
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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