1. #1
    Candidat au Club
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 4
    Points
    4

    Par défaut Librairie Ical.net et concaténation de planning

    Bonjour,

    J'ai crée une classe property qui possède entre autre comme attribut un objet de type Calendar, définit dans la librairie Ical.Net. Cet attribut s'appelle calendar.

    Dans cette classe j'ai une methode "Update_Calendar"qui me permet de télécharger sur internet différents calendriers dans un dossier, les lire pour récupérer les évenements, et stocker tout ces événements dans mon attribut calendar.

    voici ma fonction :

    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
    public void Update_Calendar()
    {
        var Temp = new Ical.Net.Calendar();
     
        int i = 0;
        int j = 0;
        string icalText;
        while (i < 5)
        {
            if(Property_channel_URL[i] != "")
            {
               // try
                //{
                    DownloadICS(Property_channel_URL[i], Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");
                    icalText = System.IO.File.ReadAllText(@"C:\chemindacces" + Property_Owner + Property_Name + Property_channel_Name[i] + ".ics");                                      
                    Temp = Ical.Net.Calendar.Load(icalText);
                    while (j < Temp.Events.Count)
                    {
                        calendar.Events.Add(Temp.Events.ElementAt(j));
                        j++;
                    }
                j = 0;
               // } catch { }
            }
            i++;          
        }
    }
    Lors de l'exécution, j'obtiens le message d'erreur suivant à la lignecalendar.Events.Add(Temp.Events.ElementAt(j));, malgré le fait que temp.Events.ElementAt(j) contient bien un evenement... :


    System.NullReferenceException

    HResult=0x80004003

    Message=La référence d'objet n'est pas définie à une instance d'un objet.

    Source=<Impossible d'évaluer la source de l'exception>

    Arborescence des appels de procédure :

    <Impossible d'évaluer l'arborescence des appels de procédure de l'exception>

    Pourriez vous m'aider à trouver le problème car je ne comprend pas pourquoi ?

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2003
    Messages : 772
    Points : 1 070
    Points
    1 070

    Par défaut

    Et calendar.event est différent de null ?

  3. #3
    Candidat au Club
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 4
    Points
    4

    Par défaut

    Non, calendar.Events est vide car je dois lui charger des événements.

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 081
    Points : 5 038
    Points
    5 038
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par mortaurat Voir le message
    Non, calendar.Events est vide car je dois lui charger des événements.
    Vide ou null ?

    Il faut initialiser ta collection pour pouvoir ajouter des éléments dedans.
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Candidat au Club
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 4
    Points
    4

    Par défaut

    De quelle manière ?

    Pour moi calendar est vide, et je souhaite rajouter des événements, je ne vois pas en quoi celà est un soucis ?

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 081
    Points : 5 038
    Points
    5 038
    Billets dans le blog
    1

    Par défaut

    Comment est déclaré ce "calendar" ?

    Vous faites bien un "new" dessus ? Ou au moins une affectation en appelant un initialiseur quelconque ?

    Code csharp : 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
     
    class Chien
    {
         private string _nom;
         public Chien(string nom)
         {
             _nom = nom;
         }
     
         public void Aboie()
         {
             Console.WriteLine(string.Concat(_nom, " aboie : wouaf !");
         }
     
         public static Chien ChienParDefaut()
         {
               return new Chien("Chien par défaut");
         }
    }

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Chien caniche;
    Chien def;
     
    caniche.Aboie(); // Plante car caniche est null
    def.Aboie(); // Plante car def est null
     
    caniche = new Chien("Caniche"); // Crée une instance de Chien
    caniche.Aboie(); // "Caniche aboie : wouaf !"
     
    def = Chien.ChienParDefaut();
    def.Aboie(); // "Chien par défaut aboie : wouaf !"
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Candidat au Club
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 4
    Points
    4

    Par défaut

    Calendar est déclaré comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public Ical.Net.Calendar calendar;
    Dans le wiki de la librairie (https://github.com/rianjs/ical.net/wiki) celà n'a pas l'air de poser de soucis...

  8. #8
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 081
    Points : 5 038
    Points
    5 038
    Billets dans le blog
    1

    Par défaut

    Ben il manque un peu cette ligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var calendar = new Calendar();
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Candidat au Club
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 4
    Points
    4

    Par défaut

    <3

    Je pensais que cela était fait de manière implicite lors de la déclaration.

    Celà semble fonctionner maintenant...

    Merci

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

Discussions similaires

  1. Automates Siemens S7 - librairie libnodave.net.dll
    Par romulus001 dans le forum C#
    Réponses: 0
    Dernier message: 08/06/2016, 12h10
  2. Connexion SSL multiple - Librairie SSH-net/Multi
    Par n3rdz0rz dans le forum Ruby
    Réponses: 2
    Dernier message: 18/01/2015, 13h16
  3. [VB.NET] Une histoire de planning
    Par Entela dans le forum Windows Forms
    Réponses: 26
    Dernier message: 03/02/2009, 12h39
  4. [VB.NET]Comment faire un planning?
    Par papy27 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/08/2006, 18h50
  5. [vb.net] Fenetre en premier plan obsolu
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/12/2005, 12h37

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