//_________________________________________________________________________________________________________________________________________________________ private void UnitePlaylist() { List <Clock> rusPlaylist; List <Clock> moldPlaylist; var fullPlaylist = new List <Clock>(); Clock currentRus; Clock currentMold; Clock currentJingle; Clock currentFull; string temp; if (UnPlValidatePlaylists()) { rusPlaylist = ReadFile(UnPlRusTextBox.Text); moldPlaylist = ReadFile(UnPlMoldTextBox.Text); currentFull = null; for (int time = 0; time < 24; time++) { currentRus = GetClock(time, rusPlaylist); currentMold = GetClock(time, moldPlaylist); //Если оба часа существуют и их надо совмещать if ((currentRus != null) && (currentMold != null)) { currentFull = new Clock(currentRus.StrTime); //____________________________ //разбираемся с Джинглами. Находим в их в молд клоке и перемещаем во временный currentJingle currentJingle = new Clock(currentRus.StrTime); do { temp = currentMold.GetString(); if (temp.Contains("Джинглы*PoliDisc")) { currentJingle.AddString(temp); currentMold.RemoveCurrentString(); } } while (!currentMold.Empty); currentMold.Reset(); currentJingle.Reset(); /* * temp = ""; */ //____________________________ //_________________________________________________________________________________________________________________________________________________________ bool stop, lastWasJingle = false; int i = 0; do { int j = ((PlaylistTemplateItem)UnPlTemplateListBox.Items[i]).Type; switch (j) { case 0: //Russian Song if (!currentRus.Empty) { currentFull.AddString(currentRus.GetString()); lastWasJingle = false; } break; case 1: //Mold Song if (!currentMold.Empty) { currentFull.AddString(currentMold.GetString()); lastWasJingle = false; } break; case 2: //Jingle if (!currentJingle.Empty && !lastWasJingle) { currentFull.AddString(currentJingle.GetString()); lastWasJingle = true; } break; } stop = currentRus.Empty && currentMold.Empty; if (i < (UnPlTemplateListBox.Items.Count - 1)) { i++; } else { i = 0; } } while (!stop); //_________________________________________________________________________________________________________________________________________________________ } else //Если есть русский час и нет молдавского , то копируем русский в итоговый if ((currentRus != null)) { currentFull = currentRus; } else //Если есть молдавский час и нет русского , то копируем молдавский в итоговый if ((currentMold != null)) { currentFull = currentMold; } if (currentFull != null) { fullPlaylist.Add(currentFull); //currentFull = null; //currentRus = null; //currentMold = null; //currentJingle = null; } currentFull = null; //currentRus = null; //currentMold = null; //currentJingle = null;; } //Записать плейлист в файл если не нулевой if (fullPlaylist.Count != 0) { if (WriteFile(fullPlaylist, UnPlFullTextBox.Text)) { UnPlInfo.Text = "ОК. Файл общего плейлиста успешно создан. \n" + UnPlFullTextBox.Text; if (RemoveSourcePlaylistafterUnite.Checked) { if (MessageBox.Show("Удалить безвозвратно файл русского плейлиста \n" + UnPlRusTextBox.Text + " ?", "Удаление файла плейлиста", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { File.Delete(UnPlRusTextBox.Text); } } } else { UnPlInfo.Text = "ОШИБКА! Не смог записать файл \n" + UnPlFullTextBox.Text; } UnPlInfo.Visible = true; } } }