[iCal4J] Parser un fichiers ics
Bonjour,
Dans le cadre d'un projet, je cherche à parser un fichier ics, c'est-à-dire à récupérer les champs qui m'intéressent.
J'utilise la bibliothèque iCal4J pour la première fois et je suis totalement perdue, même en ayant consulté la documentation.
Quelqu'un saurait-il m'indiquer un exemple simple pour récupérer une date dans un fichiers ics.
Merci d'avance pour votre aide.
Réponse parsing de fichier ICS
Bonjour,
Effectivement, j'ai bien regardé cette documentation, mais en copiant le code
Code:
1 2 3 4 5 6
|
FileInputStream fin = new FileInputStream("mycalendar.ics");
CalendarBuilder builder = new CalendarBuilder();
Calendar calendar = builder.build(fin); |
j'ai une erreur sur la deuxième ligne avec Eclipse il me dit de créer la classe CalendarBuilder.
Je ne vois pas comment utiliser ce code, j'ai bien compris que la première ligne sert à lire le contenu du fichier mais pour le reste je ne vois vraiment pas.
Cordialement
Réponse parsing de fichier ICS
J'ai test é ce code mais il n'affiche rien
Code:
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Calendrier{
public void ParcoursICS() {
// Parcours le fichier ics et récupère les rendez-vous
String ligne = "";
String fichier = "";
try {
// ouverture du fichier texte (.ics)
BufferedReader planning = new BufferedReader(new FileReader("C:/Users/Fares/Desktop/ADECal.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
System.out.println("Erreur le fichier n'existe pas");
} catch (IOException e) {
// Erreur : problème de lecture fichier
System.out.println("Erreur le fichier n'est pas lu");
}
}
//MAIN
public static void main(String [] args){
Calendrier p = new Calendrier();
p.ParcoursICS();
}
} |