Beispiel #1
0
        /// <summary>
        /// Инициализация адресных данных из базового adr фала
        /// </summary>
        /// <param name="fileName">Полный путь к файлу для чтения настроек</param>
        private void LoadAddrBase(string fileName)
        {
            //Создается экземпляр базового и инициализируется переданным файлом
            AddressStructREList adrRE = new AddressStructREList(fileName);

            //Создается временный справочник,
            //чтобы в случае проблем инициализации не испортить текущий
            Dictionary <string, AddressInstance> tmpDictionary = new Dictionary <string, AddressInstance>();

            //Заполняется справочник информацией о картах и константой карты
            foreach (AddressInstanceBase item in adrRE)
            {
                AddressInstance tmp = new AddressInstance(item);
                //Если ключ уже существует, то инкрементируем у него индекс
                while (tmpDictionary.ContainsKey(tmp.ConstName))
                {
                    string key = tmp.ConstName;
                    for (int i = key.Length - 1; i > 0; i--)
                    {
                        if (Char.IsDigit(key[i]))
                        {
                            continue;
                        }
                        else
                        {
                            string strKey = key.Substring(0, i + 1);
                            string valKey = key.Substring(i + 1);
                            int    keyNo  = valKey == "" ? 1 : Int32.Parse(valKey) + 1;
                            key           = strKey + keyNo;
                            tmp.ConstName = key;
                            break;
                        }
                    }
                }
                tmpDictionary.Add(tmp.ConstName, tmp);
            }
            _params = adrRE.GetParams();
            //Если дошли сюда, значит справочник заполнен. Заменяем.
            _stringToAdressMap = tmpDictionary;
        }
Beispiel #2
0
        /// <summary>
        /// Инициализация адресных данных из базового adr фала
        /// </summary>
        /// <param name="fileName">Полный путь к файлу для чтения настроек</param>
        private void LoadAddrBase(string fileName)
        {
            //Создается экземпляр базового и инициализируется переданным файлом
            AddressStructREList adrRE = new AddressStructREList(fileName);

            //Создается временный справочник,
            //чтобы в случае проблем инициализации не испортить текущий
            Dictionary<string, AddressInstance> tmpDictionary = new Dictionary<string, AddressInstance>();

            //Заполняется справочник информацией о картах и константой карты
            foreach (AddressInstanceBase item in adrRE)
            {
                AddressInstance tmp = new AddressInstance(item);
                //Если ключ уже существует, то инкрементируем у него индекс
                while (tmpDictionary.ContainsKey(tmp.ConstName))
                {
                    string key = tmp.ConstName;
                    for (int i = key.Length - 1; i > 0; i--)
                        if (Char.IsDigit(key[i]))
                            continue;
                        else
                        {
                            string strKey = key.Substring(0, i + 1);
                            string valKey = key.Substring(i + 1);
                            int keyNo = valKey == "" ? 1 : Int32.Parse(valKey) + 1;
                            key = strKey + keyNo;
                            tmp.ConstName = key;
                            break;
                        }
                }
                tmpDictionary.Add(tmp.ConstName, tmp);
            }
            _params = adrRE.GetParams();
            //Если дошли сюда, значит справочник заполнен. Заменяем.
            _stringToAdressMap = tmpDictionary;
        }