示例#1
0
 /// <summary>
 /// Write srt subtitles to file. If already exists is overwritten.
 /// IO error has to be catch in upper levels.
 /// </summary>
 /// <param name="file">File with subtitles (full path).</param>
 /// <param name="encoding">Encoding of file.</param>
 /// <param name="subAList">List with subtitles.</param>
 void ISubFile.WriteSubFile(String fileName, Encoding fileEncoding, BindingList <Subtitle> subList, SubtitlesFile.WhichText what)
 {
     using (StreamWriter sw = new StreamWriter(fileName, false, fileEncoding, 32000))
     {
         String[] lines;
         int      i = 1;
         foreach (Subtitle sub in subList)
         {
             sw.WriteLine(i);
             sw.WriteLine(sub.TimeBegin.ToString("hh':'mm':'ss','fff") + " --> " + sub.TimeEnd.ToString("hh':'mm':'ss','fff"));
             if (what == SubtitlesFile.WhichText.Original)
             {
                 lines = sub.Original.Split('|');
             }
             else
             {
                 lines = sub.Translation.Split('|');
             }
             for (int j = 0; j < lines.Length; j++)
             {
                 sw.WriteLine(lines[j]);
             }
             sw.WriteLine();
             i++;
         }
     }
 }
示例#2
0
        /// <summary>
        /// Write sub subtitles to the file.
        /// IO error has to be catch in upper levels.
        /// </summary>
        /// <param name="file">File with subtitles (full path).</param>
        /// <param name="encoding">Encoding of file.</param>
        /// <param name="subAList">List with subtitles.</param>
        void ISubFile.WriteSubFile(String fileName, Encoding fileEncoding, BindingList <Subtitle> subList, SubtitlesFile.WhichText what)
        {
            float unit = 1000 / FrameRate;

            using (StreamWriter sw = new StreamWriter(fileName, false, fileEncoding, 32000))
            {
                // first line of the file is famerate - begin and end is 1
                sw.WriteLine("{1}{1}" + FrameRate.ToString("0.000", new CultureInfo("en-US")));
                foreach (Subtitle sub in subList)
                {
                    if (what == SubtitlesFile.WhichText.Original)
                    {
                        sw.WriteLine("{" + timeSpanToFrame(sub.TimeBegin, FrameRate, unit) + "}{" + timeSpanToFrame(sub.TimeEnd, FrameRate, unit) + "}" + sub.Original);
                    }
                    else
                    {
                        sw.WriteLine("{" + timeSpanToFrame(sub.TimeBegin, FrameRate, unit) + "}{" + timeSpanToFrame(sub.TimeEnd, FrameRate, unit) + "}" + sub.Translation);
                    }
                }
            }
        }