/// <summary> /// Verifie si la coordonnée existe syntaxiquement parlant /// </summary> /// <param name="strCoordonnee">Coordonnée à vérifier</param> /// <returns></returns> public CResultAErreur VerifieCoordonnee(string strCoordonnee) { CResultAErreur result = CResultAErreur.True; if (strCoordonnee == null || strCoordonnee == "") { result.EmpileErreur(I.T("The coordinate cannot be empty|184")); } else { string[] strNiveaux = strCoordonnee.Split(CSystemeCoordonnees.c_separateurNumerotations); if (strNiveaux.Length > RelationParametragesNiveau.Count()) { result.EmpileErreur(I.T("Too many levels in the coordinate|251")); return(result); } CParametrageNiveau[] parametragesNiveaux = ParametragesNiveauxOrdonnees; //On va remonter niveau par niveau for (int i = strNiveaux.Length; i > 0; i--) { CResultAErreur resulttmp = CResultAErreur.True; string Niv = strNiveaux[i - 1]; CParametrageNiveau parametrageNiv = parametragesNiveaux[i - 1]; //Vérification syntaxique de la partie de coordonnée resulttmp = parametrageNiv.RelationSysCoor_FormatNum.VerifieReference(Niv); //Vérification sur la plage paramétrée if (resulttmp.Result) { resulttmp = parametrageNiv.ReferencePossible(Niv); } if (!resulttmp.Result) { result.Erreur += resulttmp.Erreur; result.Result = false; } } } return(result); }
public CNiveauCoordonnee[] DecodeCoordonnee(string strCoordonnee) { List <CNiveauCoordonnee> lst = new List <CNiveauCoordonnee>(); if (strCoordonnee == null || strCoordonnee == "") { return(null); } string[] strNiveaux = strCoordonnee.Split(CSystemeCoordonnees.c_separateurNumerotations); if (strNiveaux.Length > RelationParametragesNiveau.Count()) { return(null); } CParametrageNiveau[] parametragesNiveaux = ParametragesNiveauxOrdonnees; //On va remonter niveau par niveau int nI = 0; foreach (CParametrageNiveau parametrageNiv in ParametragesNiveauxOrdonnees) { string strNiv = strNiveaux[nI]; //Vérification syntaxique de la partie de coordonnée string strPrefixe = parametrageNiv.RelationSysCoor_FormatNum.IsolerPrefixe(strNiv); CResultAErreur result = parametrageNiv.RelationSysCoor_FormatNum.GetIndex(strNiv); if (!result) { return(null); } int nIndex = (int)result.Data; lst.Add(new CNiveauCoordonnee(strNiv, strPrefixe, nIndex)); } return(lst.ToArray()); }