private void openBT_Click(object sender, EventArgs e) { DialogResult dr = new DialogResult(); if (!Directory.Exists(Form1.supermarketXmlPath)) { //если папка XML не сущестует, то создать ее Directory.CreateDirectory(Form1.supermarketXmlPath); } openFileDialog.InitialDirectory = Form1.supermarketXmlPath; openFileDialog.Filter = "Файлы XML (*.xml)|*.xml"; dr = openFileDialog.ShowDialog(); if (dr == DialogResult.OK) { openTextBox.Text = openFileDialog.FileName; SectionGoods tmpSection = new SectionGoods(); if (tmpSection.Deserialize(openFileDialog.FileName)) { openResultLabel.ForeColor = Color.Green; openResultLabel.Text = "Выгрузка секции \"" + tmpSection.Name + "\" прошла успешно"; NewSectionName = tmpSection.Name; addBT.Enabled = true; } else { openResultLabel.ForeColor = Color.Red; openResultLabel.Text = "Выгрузка прошла неуспешно"; } } }
public bool Deserialize(string path) { /*if (path == "") * path = defaultPath + "section.xml";*/ //XmlSerializer ser = new XmlSerializer(typeof(SectionGoods)); var dcss = new DataContractSerializerSettings { PreserveObjectReferences = true }; var dcs = new DataContractSerializer(typeof(SectionGoods), dcss); try { if (File.Exists(path)) { using (FileStream st = new FileStream(path, FileMode.Open)) { SectionGoods goods = new SectionGoods(); //goods = (SectionGoods)ser.Deserialize(st); goods = (SectionGoods)dcs.ReadObject(st); this.Clear(); this.Count = goods.Count; this.Name = goods.Name; this.head = goods.head; } return(true); } else { Console.WriteLine("Файла не существует."); return(false); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(false); } }
public int AddNewSection(SectionGoods section) { if (GetSection(section.Name) != null) //проверка на существование секции с именем sectionName { //если данное название используется в другой секции, не добавлять новую секцию return(NAME_ERROR); } else { if (IsQueueFull()) { //список заполнен return(QUEUE_FULL_EMPTY_ERROR); } else { if (IsQueueEmpty()) //список пуст => создается первый элемент с указателями... { front = rear = 0; //на первый и крайний элементы очереди равными 0 } else { //если список не пуст, указатель на первый элемент очереди front не трогаем if (rear == size - 1 && front != 0) { //если указатель на крайний элемент очереди указывает на последний элемент массива //и указатель на первый элемент очереди не указывает на первый элемент массива //то есть очередь не заполнена... повторная проверка rear = 0; //то установить указатель на крайний элемент очереди на первый элемент массива } else { rear++; //ИНАЧЕ просто увеличиваем на один только указатель на крайний элемент очереди } } //занесение секции в массив с индексом rear sectionsQueue[rear] = section; sectionAmount++; //увеличение количества элементов в очереди return(rear); //вернуть указатель на добавленный новый элемент } } }