/// <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++; } } }
/// <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); } } } }