示例#1
0
        /// <summary>
        /// Синхронизировать K-файл в соответствии с ID и таблицей синхронизации
        /// </summary>
        /// <param name="file_k">Путь к Rфайлу</param>
        /// <param name="SyncToIdTableFilename">Путь к таблице синхронизации по ID</param>
        public static void SyncronizeKFileAccordingToSyncToIdTable(string file_k, string SyncToIdTableFilename, TextBox OuterTextBox)
        {
            List <KadrIntervals> K = SpecialFor9_41_SCENARY2.DeserializeKFiles(file_k);

            //считываем данные из Excel файла в двумерный массив
            Excel.Application xlApp = new Excel.Application();   //Excel
            Excel.Workbook    xlWB;                              //рабочая книга
            Excel.Worksheet   xlSht;                             //лист Excel
            xlWB  = xlApp.Workbooks.Open(SyncToIdTableFilename); //название файла Excel
            xlSht = xlWB.Worksheets[1];                          //название листа или 1-й лист в книге xlSht = xlWB.Worksheets[1];

            int iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row;
            var arrData  = (object[, ])xlSht.Range["A1:B" + iLastRow].Value; //берём данные с листа Excel

            int i;

            foreach (var Intervals in K)
            {
                string curId = Intervals.Id;
                bool   curIdFindInSyncTable = false;
                for (i = 1; i <= arrData.GetUpperBound(0); i++)
                {
                    string idFromSyncTable = (arrData[i, 1]).ToString();
                    if (curId == idFromSyncTable)
                    {
                        long delta_t = (long)(24 * 3_600_00 * (double)arrData[i, 2]);
                        curIdFindInSyncTable = true;
                        foreach (var interval in Intervals.Intervals)
                        {
                            if (Intervals.Intervals.IndexOf(interval) != 0)
                            {
                                interval.Time_ms_beg += delta_t;
                                if (interval.Time_ms_beg < 0)
                                {
                                    interval.Time_ms_beg = 0;
                                }
                            }
                            else
                            {
                                interval.Time_ms_beg = 0;
                            }
                            interval.Time_ms_end += delta_t;
                            if (interval.Time_ms_end < 0)
                            {
                                interval.Time_ms_end = 0;
                            }
                        }
                        break;
                    }
                }

                if (!curIdFindInSyncTable)
                {
                    OuterTextBox.Text += "Id файла:     " + curId + "   не найден в " + Path.GetFileName(SyncToIdTableFilename) + " \n";
                }
            }
            new SpecialFor9_41_SCENARY2().SerializeKFiles(K, file_k.Replace(".xml", "_sync.xml"));
        }
示例#2
0
        /// <summary>
        /// Вывод всех ID, которые есть в К-файле
        /// </summary>
        /// <param name="file_r"></param>
        /// <param name="OuterTextBox"></param>
        public static void OutputIdFromKFile(string file_k, TextBox OuterTextBox)
        {
            List <KadrIntervals> Lst = SpecialFor9_41_SCENARY2.DeserializeKFiles(file_k);

            OuterTextBox.Text += "----------" + "\n" + "Перечень ID в файле " + file_k + "\n" + "-----------------------" + "\n";
            foreach (var Interval in Lst)
            {
                OuterTextBox.Text += Interval.Id + "\n";
            }
            OuterTextBox.Text += "\n" + "-----------------------";
        }