コード例 #1
0
//_________________________________________________________________________________________________________________________________________________________


        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;
                }
            }
        }