static void Main(string[] args) { OAHashtable <int, int> table = new OAHashtable <int, int>(); table.Add(1, 1); table.Add(10, 10); }
static void OA_Hashtbale_test() { OAHashtable <string, string> table = new OAHashtable <string, string>(); bool quit = false; while (!quit) { Console.WriteLine($"Хеш-таблица: ({table.Fullness})"); foreach (var pair in table) { Console.WriteLine($"{pair.Key}, {pair.Value}"); } Console.WriteLine(); Console.WriteLine("1) Добавить"); Console.WriteLine("2) Удалить"); Console.WriteLine("0) Выйти"); switch (Console.ReadKey(true).Key) { case ConsoleKey.D1: Console.Clear(); Console.Write("Ключ: "); string key = Console.ReadLine(); Console.Write("Значение: "); string value = Console.ReadLine(); table.Add(key, value); Console.Clear(); break; case ConsoleKey.D2: Console.Clear(); Console.Write("Ключ: "); string del = Console.ReadLine(); table.Delete(del); Console.Clear(); break; case ConsoleKey.D0: quit = true; break; default: Console.Clear(); break; } } }
private void LoadFile() { OpenFileDialog openDialog = new OpenFileDialog(); openDialog.Filter = "Справочник (*.txt)|*.txt"; //openDialog.InitialDirectory = "C:\\Users\\mi\\source\\repos\\2-Course-Work\\saves"; openDialog.InitialDirectory = Path.Combine(new FileInfo(Application.ExecutablePath).DirectoryName); DialogResult result = openDialog.ShowDialog(); string line = ""; string[] cells; int index; if (result == DialogResult.OK) { StreamReader reader; try { reader = new StreamReader(openDialog.FileName); } catch (Exception) { UpdateInfo("Ошибка при открытии файла"); return; } ClearAllStructures(); try { while (!reader.ReadLine().StartsWith("#")) { ; } line = reader.ReadLine(); while (!line.StartsWith("#")) // чтение название - жанр { line = CleanString(line); if (line.StartsWith("#")) { continue; } cells = line.Replace(' ', '%').Replace('_', ' ').Split('%'); foreach (var word in cells) { if (HasIncorrectSymbols(word)) { throw new FormatException(); } } if (cells.Length != 2) { throw new IndexOutOfRangeException(); } index = NameGenreTable.Rows.Add(cells); NameGenreHT.Add(cells[0], NameGenreTable.Rows[index]); line = reader.ReadLine(); } while (!reader.ReadLine().StartsWith("#")) { ; } line = reader.ReadLine(); while (!line.StartsWith("#")) // чтение название - автор { line = CleanString(line); if (line.StartsWith("#")) { continue; } cells = line.Replace(' ', '%').Replace('_', ' ').Split('%'); foreach (var word in cells) { if (HasIncorrectSymbols(word)) { throw new FormatException(); } } if (cells.Length != 2) { throw new IndexOutOfRangeException(); } if (NameGenreHT.Contains(cells[0])) { structureForm.Name_comboBox.Items.Add(cells[0]); } index = NameAuthorTable.Rows.Add(cells); NameAuthorHT.Add(cells[0], NameAuthorTable.Rows[index]); line = reader.ReadLine(); } while (!reader.ReadLine().StartsWith("#")) { ; } line = reader.ReadLine(); while (!line.StartsWith("#")) // чтение структуры { line = CleanString(line); if (line.StartsWith("#")) { continue; } cells = line.Replace(' ', '%').Replace('_', ' ').Split('%'); foreach (var word in cells) { if (HasIncorrectSymbols(word)) { throw new FormatException(); } } if (cells.Length != 5) { throw new IndexOutOfRangeException(); } if (!NameGenreHT.Contains(cells[0]) || !NameAuthorHT.Contains(cells[0])) { throw new ArgumentException(); } index = StructureTable.Rows.Add(cells); YearTree.Add(int.Parse(cells[4]), StructureTable.Rows[index]); PublisherTree.Add(cells[3], StructureTable.Rows[index]); NameTree.Add(cells[0], StructureTable.Rows[index]); line = reader.ReadLine(); } reader.Close(); saved = true; UpdateInfo("Файл успешно загружен"); } catch (ArgumentException) { ClearAllStructures(); UpdateInfo("Файл не загружен. Целостность справочников нарушена"); return; } catch (FormatException) { ClearAllStructures(); UpdateInfo("Ошибка при чтении файла. Файл содержит недопустимые символы"); return; } catch (Exception) { ClearAllStructures(); UpdateInfo("Ошибка при чтении файла. Файл имеет неверный формат"); return; } } }