示例#1
0
        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); //вызываем меню для таблиц
        }
示例#2
0
        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);
        }