public eEquation RecupererEquation(int Index)
        {
            Log.Methode(cNOMCLASSE);

            eEquation pEqu = new eEquation();

            if (pEqu.Init(this, Index))
                return pEqu;

            return null;
        }
        /// <summary>
        /// Méthode interne
        /// Renvoi la liste des equation filtrée par les arguments
        /// Si NomARechercher est vide, toutes les equations sont renvoyées
        /// </summary>
        /// <param name="NomARechercher"></param>
        /// <returns></returns>
        public ArrayList ListeDesEquations(String NomARechercher = "")
        {
            Log.Methode(cNOMCLASSE);

            ArrayList pListeEquations = new ArrayList();

            if (_SwGestEquations.GetCount() > 0)
            {
                for (int i = 0; i < _SwGestEquations.GetCount(); i++)
                {
                    eEquation pEqu = new eEquation();
                    if (pEqu.Init(this, i) && exRegex.IsMatch(NomEquationAvexIndex(i), NomARechercher))
                        pListeEquations.Add(pEqu);
                }
            }

            return pListeEquations;
        }
        /// <summary>
        /// Récupérer une equation
        /// </summary>
        /// <param name="Nom"></param>
        /// <returns></returns>
        public eEquation RecupererEquation(String Nom)
        {
            Log.Methode(cNOMCLASSE);

            int? Index = IndexEquationAvecLeNom(Nom);

            if (Index != null)
            {
                eEquation pEqu = new eEquation();

                if (pEqu.Init(this, (int)Index))
                    return pEqu;
            }

            return null;
        }
        /// <summary>
        /// Ajouter une equation
        /// </summary>
        /// <param name="Nom"></param>
        /// <param name="TypePropriete"></param>
        /// <param name="Expression"></param>
        /// <param name="EcraserExistante"></param>
        /// <returns></returns>
        public eEquation AjouterEquation(String Nom, String Expression, swInConfigurationOpts_e QuelConfigs, ArrayList ListeConfigs = null, Boolean EcraserExistante = false, int Index = -1)
        {
            Log.Methode(cNOMCLASSE);

            // Si on écrase, on supprime l'equation
            if (EcraserExistante)
                SupprimerEquation(Nom);

            // On la récupère
            eEquation pEqu = RecupererEquation(Nom);

            Object[] pNomsConfigs = null;

            // Si elle n'existe pas on la crée et on lui assigne l'expression
            if (pEqu == null)
            {
                if (ListeConfigs.Count > 0)
                {
                    pNomsConfigs = new Object[ListeConfigs.Count];
                    for (int i = 0; i < ListeConfigs.Count; i++)
                    {
                        Log.Message("===================================>>>>" + ((eConfiguration)ListeConfigs[i]).Nom);
                        pNomsConfigs[i] = ((eConfiguration)ListeConfigs[i]).Nom;
                    }
                }

                if (_SwGestEquations.Add3(Index, '"' + Nom + "\" = \"" + Expression + '"', true, (int)QuelConfigs, pNomsConfigs) != -1)
                {
                    pEqu = new eEquation();
                    pEqu.Init(this, Index);
                }
            }

            // Si tout est ok, on la renvoi
            if (pEqu.EstInitialise)
                return pEqu;

            return null;
        }