private void Addbtn_Click(object sender, EventArgs e) { Statelabel.Text = ""; if (checktype(First_textbox.Text, Second_textbox.Text) == 0) { Statelabel.Text = "Оба поля пусты. Добавлять нечего"; } if (checktype(First_textbox.Text, Second_textbox.Text) == 1) { //только один аргумент Statelabel.Text += String.Format("Добавленные элементы:\n"); Lall element = Parse(First_textbox.Text); container_.Add(element); ElementsCombo.Items.Add(string.Format("{0}", element.Get())); } if (checktype(First_textbox.Text, Second_textbox.Text) == 2) { //два аргумента Lelement first, second; Statelabel.Text += String.Format("Добавленные элементы:\n"); first = Parse(First_textbox.Text); second = Parse(Second_textbox.Text); Lall element = new Lstruct2(first, second); container_.Add(element); ElementsCombo.Items.Add(string.Format("{0}, {1}", element.Get(0), element.Get(1))); } }
private void restorebtn_Click(object sender, EventArgs e) { string path = "data.txt"; string[] a; try { StreamReader file = new StreamReader(path); container_.Clear(); while (!file.EndOfStream) { //читаем до конца файла a = file.ReadLine().Split('\t'); if (a.Count() == 1) { //табов нет Lall element = Parse(a[0]); container_.Add(element); ElementsCombo.Items.Add(string.Format("{0}", element.Get())); } else { if (a.Count() == 2) { //опа, табы Lelement first, second; first = Parse(a[0]); second = Parse(a[1]); Lall element = new Lstruct2(first, second); container_.Add(element); ElementsCombo.Items.Add(string.Format("{0}, {1}", element.Get(0), element.Get(1))); } else //кто-то ручками влез в файл { throw new Exception("corruption"); } } } Statelabel.Text = "Список успешно восстановлен"; file.Close(); } //что-то пошло не так, не паникуем catch (System.IO.FileNotFoundException) { Statelabel.Text = "Файл не найден"; } catch (System.IO.IOException) { Statelabel.Text = "Ошибка ввода/вывода"; } catch (Exception) { } }
private void ascbtn_Click(object sender, EventArgs e) { int swaps = 0; int Nelements = container_.Count(); Lstruct2 cmp_first, cmp_second; do { swaps = 0; for (int i = 0; i < Nelements; i++) { if (container_.ElementAt(i).Get_Count() == 1) { //не структура cmp_first = new Lstruct2((Lelement)container_.ElementAt(i), new Lstring()); } else { //это и так структура, так что кастуем и присваиваем cmp_first = (Lstruct2)container_.ElementAt(i); } for (int j = i + 1; j < Nelements; j++) { if (container_.ElementAt(j).Get_Count() == 1) { //не структура cmp_second = new Lstruct2((Lelement)container_.ElementAt(j), new Lstring()); } else { //это и так структура, так что кастуем и присваиваем cmp_second = (Lstruct2)container_.ElementAt(j); } //а теперь сравнение if (cmp_first > cmp_second) { container_.Insert(i, container_.ElementAt(j)); ElementsCombo.Items.Insert(i, ElementsCombo.Items[j]); container_.RemoveAt(j + 1); ElementsCombo.Items.RemoveAt(j + 1); swaps++; } } } } while (swaps != 0); Statelabel.Text = "Контейнер отсортирован по возрастанию"; }
private void deldblbtn_Click(object sender, EventArgs e) { int dels = 0; int Nelements = container_.Count(); Lstruct2 cmp_first, cmp_second; do { dels = 0; for (int i = 0; i < Nelements; i++) { if (container_.ElementAt(i).Get_Count() == 1) { //не структура cmp_first = new Lstruct2((Lelement)container_.ElementAt(i), new Lstring()); } else { //это и так структура, так что кастуем и присваиваем cmp_first = (Lstruct2)container_.ElementAt(i); } for (int j = i + 1; j < Nelements; j++) { if (container_.ElementAt(j).Get_Count() == 1) { //не структура cmp_second = new Lstruct2((Lelement)container_.ElementAt(j), new Lstring()); } else { //это и так структура, так что кастуем и присваиваем cmp_second = (Lstruct2)container_.ElementAt(j); } //а теперь сравнение if (cmp_first == cmp_second) { container_.RemoveAt(j); ElementsCombo.Items.RemoveAt(j); Nelements--; dels++; } } } } while (dels != 0); }
private void Searchbtn_Click(object sender, EventArgs e) { int count = 0; Statelabel.Text = ""; if (checktype(First_textbox.Text, Second_textbox.Text) == 0) { Statelabel.Text = "Оба поля пусты. Искать нечего"; } if (checktype(First_textbox.Text, Second_textbox.Text) == 1) { //проверяем поиск: один аргумент Statelabel.Text += String.Format("Цель поиска:\n"); Lelement search = Parse(First_textbox.Text); foreach (Lall element in container_) { if (element.Get_Count() == 1 && search == (Lelement)element) { count++; } } Statelabel.Text += String.Format("Объектов найдено: {0}", count); } if (checktype(First_textbox.Text, Second_textbox.Text) == 2) { //проверяем поиск: два аргумента Lelement first, second; Statelabel.Text += String.Format("Цель поиска:\n"); first = Parse(First_textbox.Text); second = Parse(Second_textbox.Text); Lstruct2 search = new Lstruct2(first, second); foreach (Lall element in container_) { if (element.Get_Count() == 2 && search == (Lstruct2)element) { count++; } } Statelabel.Text += String.Format("Объектов найдено: {0}", count); } }