static void ManyTables() //обработка одной таблицы { string workPath = ""; //рабочая папка (та, где лежат DOC файлы) Console.Clear(); //открыли, прочитали DOC файлы DOCFile doc = new DOCFile( FileEventProcessor, FileEventProcessor); doc.ReadManyFiles(out workPath); if (doc.filePath == null) { return; } CalibrationTable[] CT = new CalibrationTable[0]; for (int i = 0; i < doc.fileId.Length; i++) { CalibrationTable tempCT = new CalibrationTable( doc.fileId[i], CTEventProcessor, CTEventProcessor, CTEventProcessor, CTEventProcessor, CTEventProcessor, CTEventProcessor, CTEventProcessor, CTEventProcessor); if (tempCT.ReadTable(doc.fileData[i])) { tempCT.RepairTable(RepairVolumeInconcictensy); } if (tempCT.Table.Count == 0) { continue; } Array.Resize(ref CT, CT.Length + 1); tempCT.CopyTo(ref CT[CT.Length - 1]); CT[CT.Length - 1].ChangeLevelBase(DefaultLevelBase); } TXTFile txt = new TXTFile( //создали и записали TXT файлы FileEventProcessor, FileEventProcessor, FileEventProcessor, FileEventProcessor); txt.WriteManyFiles(CT, workPath, WriteValcomHeader); ManyTablesMenu(CT, workPath); //вызываем меню для таблиц }
static void ManyTablesMenu(CalibrationTable[] CT, string path) //меню работы с несколькими таблицами { int MenuChoice = 0, //выбранное доп. меню ItemChoice = 0; //выбранный пункт меню Menu.DoubleColor[] colorScheme = new Menu.DoubleColor[2]; colorScheme[0] = new Menu.DoubleColor(); colorScheme[1] = new Menu.DoubleColor(ConsoleColor.Yellow); Menu M = new Menu( new string[] { "Несколько градуировочных таблиц", "Опции (<Tab> для перехода)" }, new string[][] { new string[] { }, new string[] { } }, null, 0, colorScheme); do { M.Items = new string[][] { new string[] { "1. Выбрать таблицу для работы", "2. Изменить везде базу уровней на " + ((DefaultLevelBase == LevelBase.Centimeters)?"мм":"см"), "3. Проверить все таблицы", "4. Исправить все таблицы", "5. Сортировать все таблицы", "6. Сохранить все таблицы", "7. Выход" }, new string[] { "Исправлять непоследовательность объемов: " + ((RepairVolumeInconcictensy)?"да":"нет") } }; M.MenuCicle(out MenuChoice, out ItemChoice); switch (MenuChoice) { case -1: //отмена меню break; case 0: switch (ItemChoice) { case 0: //1. Выбрать таблицу для работы ChooseTableMenu(CT, path); break; case 1: //2. Изменить во всех таблицах базу уровней DefaultLevelBase = (DefaultLevelBase == LevelBase.Centimeters) ? (LevelBase.Millimeters) : (LevelBase.Centimeters); for (int i = 0; i < CT.Length; i++) { CT[i].ChangeLevelBase(DefaultLevelBase); } break; case 2: //3. Проверить все таблицы for (int i = 0; i < CT.Length; i++) { CT[i].CheckTable(); } break; case 3: //4. Исправить все таблицы for (int i = 0; i < CT.Length; i++) { CT[i].RepairTable(RepairVolumeInconcictensy); } break; case 4: //5. Сортировать все таблицы for (int i = 0; i < CT.Length; i++) { CT[i].SortTable(); } break; case 5: //6. Сохранить все таблицы TXTFile tf = new TXTFile( FileEventProcessor, FileEventProcessor, FileEventProcessor, FileEventProcessor); tf.WriteManyFiles(CT, path, WriteValcomHeader); break; case 6: //2. Выход ExitApp = true; break; default: //ошибка меню Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Ошибка в работе доп. 0 меню нескольких таблиц!!!\n\nНажмите любую клавишу для выхода..."); Console.ReadKey(true); ExitApp = true; break; } break; case 1: Menu M4 = new Menu( new string[] { "Исправлять непоследовательность объемов?" }, new string[][] { new string[] { "Да", "Нет" } }, null, 0, new Menu.DoubleColor[] { new Menu.DoubleColor(ConsoleColor.Yellow) }); int MenuChoice4 = 0, ItemChoice4 = 0; M4.MenuCicle(out MenuChoice4, out ItemChoice4); switch (MenuChoice4) { case 0: switch (ItemChoice4) { case 0: //Да RepairVolumeInconcictensy = true; break; case 1: //Нет RepairVolumeInconcictensy = false; break; } break; } break; default: Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Ошибка в работе меню нескольких таблиц!!!\n\nНажмите любую клавишу для выхода..."); Console.ReadKey(true); ExitApp = true; break; } } while (!(MenuChoice == -1 || MenuChoice == 0 && ItemChoice == 6) && !ExitApp); }