public Map(From pFrom, AddressInstance pAddr) { _adr = pAddr; _bin = pFrom.GetBin(); _from = pFrom; _map = new uint?[_adr.Columns, _adr.Rows]; _mapObj = new object[_adr.Columns, _adr.Rows]; }
/// <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; }
private string GetComment(AddressInstance adr) { return adr.MapName + " [" + adr.ConstName + "]"; }
/// <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; }