/// <summary> /// Вывод всех ID, которые есть в R-файле /// </summary> /// <param name="file_r"></param> /// <param name="OuterTextBox"></param> public static void OutputIdFromRFile(string file_r, TextBox OuterTextBox) { List <SeparatorIntervals> Lst = SpecialFor9_41_SCENARY2.DeserializeRFiles(file_r); OuterTextBox.Text += "----------" + "\n" + "Перечень ID в файле " + file_r + "\n" + "-----------------------" + "\n"; foreach (var Interval in Lst) { OuterTextBox.Text += Interval.Id + "\n"; } OuterTextBox.Text += "\n" + "-----------------------"; }
/// <summary> /// Синхронизировать R-файл в соответствии с ID и таблицей синхронизации /// </summary> /// <param name="file_r">Путь к Rфайлу</param> /// <param name="SyncToIdTableFilename">Путь к таблице синхронизации по ID</param> public static void SyncronizeRFileAccordingToSyncToIdTable(string file_r, string SyncToIdTableFilename, TextBox OuterTextBox) { List <SeparatorIntervals> R = SpecialFor9_41_SCENARY2.DeserializeRFiles(file_r); //считываем данные из 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 R) { 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_000 * (double)arrData[i, 2]); curIdFindInSyncTable = true; foreach (var interval in Intervals.Intervals) { interval.Time_ms_beg += delta_t; if (interval.Time_ms_beg < 0) { 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().SerializeRFiles(R, file_r.Replace(".xml", "_sync.xml")); }