本文整理汇总了C#中Nikse.SubtitleEdit.Core.Subtitle.Renumber方法的典型用法代码示例。如果您正苦于以下问题:C# Subtitle.Renumber方法的具体用法?C# Subtitle.Renumber怎么用?C# Subtitle.Renumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nikse.SubtitleEdit.Core.Subtitle
的用法示例。
在下文中一共展示了Subtitle.Renumber方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//00:03:15:22 00:03:23:10 This is line one.
//This is line two.
subtitle.Paragraphs.Clear();
_errorCount = 0;
foreach (string line in lines)
{
if (regexTimeCodes.IsMatch(line))
{
string temp = line.Substring(0, regexTimeCodes.Match(line).Length);
string start = temp.Substring(0, 11);
string end = temp.Substring(12, 11);
string[] startParts = start.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
string[] endParts = end.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
if (startParts.Length == 4 && endParts.Length == 4)
{
string text = line.Remove(0, regexTimeCodes.Match(line).Length - 1).Trim();
text = text.Replace("//", Environment.NewLine);
var p = new Paragraph(DecodeTimeCode(startParts), DecodeTimeCode(endParts), text);
subtitle.Paragraphs.Add(p);
}
}
else
{
_errorCount += 10;
}
}
subtitle.Renumber();
}
示例2: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
const int startPosition = 0xa99;
const int textPosition = 72;
_errorCount = 0;
subtitle.Paragraphs.Clear();
subtitle.Header = null;
var buffer = FileUtil.ReadAllBytesShared(fileName);
int index = startPosition;
if (buffer[index] != 1)
{
return;
}
while (index + textPosition < buffer.Length)
{
int textLength = buffer[index + 16];
if (textLength > 0 && index + textPosition + textLength < buffer.Length)
{
string text = GetText(index + textPosition, textLength, buffer);
if (!string.IsNullOrWhiteSpace(text))
{
int startFrames = GetFrames(index + 4, buffer);
int endFrames = GetFrames(index + 8, buffer);
subtitle.Paragraphs.Add(new Paragraph(text, FramesToMilliseconds(startFrames), FramesToMilliseconds(endFrames)));
}
}
index += textPosition + textLength;
}
subtitle.Renumber();
}
示例3: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//00:01:54:19,00:01:56:17,We should be thankful|they accepted our offer.
_errorCount = 0;
subtitle.Paragraphs.Clear();
foreach (string line in lines)
{
if (line.IndexOf(':') == 2 && regexTimeCodes.IsMatch(line))
{
string start = line.Substring(0, 11);
string end = line.Substring(13, 11);
try
{
Paragraph p = new Paragraph(DecodeTimeCode(start), DecodeTimeCode(end), DecodeText(line.Substring(25).Trim()));
subtitle.Paragraphs.Add(p);
}
catch
{
_errorCount++;
}
}
else if (!string.IsNullOrWhiteSpace(line) && !line.StartsWith("//") && !line.StartsWith('$'))
{
_errorCount++;
}
}
subtitle.Renumber();
}
示例4: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//00:01:54:19,00:01:56:17,We should be thankful|they accepted our offer.
_errorCount = 0;
subtitle.Paragraphs.Clear();
var regexTimeCodes = new Regex(@"^\d\d:\d\d:\d\d:\d\d,\d\d:\d\d:\d\d:\d\d,.+", RegexOptions.Compiled);
if (fileName != null && fileName.EndsWith(".stl", StringComparison.OrdinalIgnoreCase)) // allow empty text if extension is ".stl"...
regexTimeCodes = new Regex(@"^\d\d:\d\d:\d\d:\d\d,\d\d:\d\d:\d\d:\d\d,", RegexOptions.Compiled);
foreach (string line in lines)
{
if (line.IndexOf(':') == 2 && regexTimeCodes.IsMatch(line))
{
string start = line.Substring(0, 11);
string end = line.Substring(12, 11);
try
{
Paragraph p = new Paragraph(DecodeTimeCode(start), DecodeTimeCode(end), DecodeText(line.Substring(24)));
subtitle.Paragraphs.Add(p);
}
catch
{
_errorCount++;
}
}
else if (!string.IsNullOrWhiteSpace(line) && !line.StartsWith("//") && !line.StartsWith('$'))
{
_errorCount++;
}
}
subtitle.Renumber();
}
示例5: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
subtitle.Paragraphs.Clear();
foreach (string line in lines)
{
if (regexTimeCodes.IsMatch(line))
{
int splitter = line.IndexOf(':') + 3;
string text = line.Remove(0, splitter);
var p = new Paragraph(DecodeTimeCode(line.Substring(0, splitter)), new TimeCode(0, 0, 0, 0), text);
subtitle.Paragraphs.Add(p);
text = text.Trim().Trim('–', '.', ';', ':').Trim();
if (text.Length > 0 && char.IsDigit(text[0]))
_errorCount++;
}
else
{
_errorCount += 2;
}
}
foreach (Paragraph p2 in subtitle.Paragraphs)
{
p2.Text = Utilities.AutoBreakLine(p2.Text);
}
subtitle.RecalculateDisplayTimes(Configuration.Settings.General.SubtitleMaximumDisplayMilliseconds, null);
subtitle.Renumber();
}
示例6: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
FrameRate = Configuration.Settings.General.CurrentFrameRate;
var sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
var xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(sb.ToString().Trim());
foreach (XmlNode node in xml.SelectNodes("fcpxml/project/sequence/spine/gap"))
{
try
{
foreach (XmlNode title in node.SelectNodes("title"))
{
var textNodes = title.SelectNodes("text");
if (textNodes != null && textNodes.Count > 0)
{
Paragraph p = new Paragraph();
p.StartTime = DecodeTime(title.Attributes["offset"]);
p.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds + DecodeTime(title.Attributes["duration"]).TotalMilliseconds;
var text = new StringBuilder();
foreach (XmlNode textNode in textNodes)
{
text.AppendLine(textNode.InnerText);
}
p.Text = text.ToString().Trim();
subtitle.Paragraphs.Add(p);
}
}
}
catch
{
_errorCount++;
}
}
subtitle.Renumber();
}
catch
{
_errorCount = 1;
return;
}
}
示例7: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
var sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string xmlString = sb.ToString();
if (!xmlString.Contains("<BDN"))
return;
var xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(xmlString);
}
catch
{
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("Events/Event"))
{
try
{
string start = node.Attributes["InTC"].InnerText;
string end = node.Attributes["OutTC"].InnerText;
var textBuilder = new StringBuilder();
foreach (XmlNode graphic in node.SelectNodes("Graphic"))
textBuilder.AppendLine(graphic.InnerText);
var p = new Paragraph(textBuilder.ToString().Trim(), GetMillisecondsFromTimeCode(start), GetMillisecondsFromTimeCode(end));
if (node.Attributes["Forced"] != null && node.Attributes["Forced"].Value.Equals("true", StringComparison.OrdinalIgnoreCase))
p.Forced = true;
subtitle.Paragraphs.Add(p);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}
示例8: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
var sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string xmlString = sb.ToString();
if (!xmlString.Contains("<titles") || !xmlString.Contains("<text1>"))
return;
var xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(xmlString);
}
catch
{
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("title"))
{
try
{
XmlNode timeNode = node.SelectSingleNode("time");
string start = timeNode.Attributes["start"].InnerText;
string end = timeNode.Attributes["end"].InnerText;
string text = string.Empty;
for (int i = 1; i < 10; i++)
{
XmlNode textNode = node.SelectSingleNode("text" + i);
if (textNode != null)
text = (text + Environment.NewLine + textNode.InnerText).Trim();
}
subtitle.Paragraphs.Add(new Paragraph(text, ParseTimeCode(start), ParseTimeCode(end)));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}
示例9: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//01072508010729007
_errorCount = 0;
Paragraph p = null;
subtitle.Paragraphs.Clear();
subtitle.Header = null;
foreach (string line in lines)
{
if (string.IsNullOrWhiteSpace(line))
{
continue;
}
var indexOf7001 = line.IndexOf("7\x01\x01\0", StringComparison.Ordinal);
var indexOfTen = line.IndexOf(" 10 ", StringComparison.Ordinal);
if (indexOf7001 >= 0 && indexOfTen > 0)
{
try
{
string text = line.Substring(0, indexOfTen).Trim();
string time = line.Substring(indexOf7001 - 16, 16);
p = new Paragraph(DecodeTimeCode(time.Substring(0, 8)), DecodeTimeCode(time.Substring(8)), text);
subtitle.Paragraphs.Add(p);
}
catch (Exception exception)
{
System.Diagnostics.Debug.WriteLine(exception.Message);
_errorCount++;
}
}
else if (p != null)
{
_errorCount++;
}
}
if (p != null && !string.IsNullOrEmpty(p.Text))
subtitle.Paragraphs.Add(p);
subtitle.Renumber();
}
示例10: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
StringBuilder sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string allText = sb.ToString();
if (!allText.Contains("<Subtitle") || !allText.Contains("TimeStart="))
return;
XmlDocument xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(allText);
}
catch (Exception exception)
{
System.Diagnostics.Debug.WriteLine(exception.Message);
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("Phrase"))
{
try
{
string start = node.Attributes["TimeStart"].InnerText;
string end = node.Attributes["TimeEnd"].InnerText;
string text = node.SelectSingleNode("Text").InnerText;
text = text.Replace("\\n", Environment.NewLine);
subtitle.Paragraphs.Add(new Paragraph(DecodeTimeCode(start), DecodeTimeCode(end), text));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}
示例11: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//1 00:03:15:22 00:03:23:10
//This is line one.
//This is line two.
Paragraph p = null;
subtitle.Paragraphs.Clear();
_errorCount = 0;
foreach (string line in lines)
{
if (regexTimeCodes.IsMatch(line))
{
string[] temp = line.Split(' ');
if (temp.Length == 3)
{
string start = temp[1];
string end = temp[2];
string[] startParts = start.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
string[] endParts = end.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
if (startParts.Length == 4 && endParts.Length == 4)
{
p = new Paragraph(DecodeTimeCode(startParts), DecodeTimeCode(endParts), string.Empty);
subtitle.Paragraphs.Add(p);
}
}
}
else if (string.IsNullOrWhiteSpace(line))
{
// skip these lines
}
else if (p != null)
{
if (string.IsNullOrEmpty(p.Text))
p.Text = line;
else
p.Text = p.Text + Environment.NewLine + line;
}
}
subtitle.Renumber();
}
示例12: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
//22 00:04:19:12 00:04:21:09 00:00:01:21
_errorCount = 0;
Paragraph lastParagraph = null;
int count = 0;
foreach (string line in lines)
{
bool isTimeCode = false;
if (line.Length > 0)
{
bool success = false;
if (line.Length > 31 && line.IndexOf(':') > 1)
{
var match = regex.Match(line);
if (match.Success)
{
isTimeCode = true;
if (lastParagraph != null)
subtitle.Paragraphs.Add(lastParagraph);
var arr = line.Split('\t');
TimeCode start = DecodeTimeCode(arr[1]);
TimeCode end = DecodeTimeCode(arr[2]);
lastParagraph = new Paragraph(start, end, string.Empty);
success = true;
}
}
if (!isTimeCode && !string.IsNullOrWhiteSpace(line) && lastParagraph != null && Utilities.GetNumberOfLines(lastParagraph.Text) < 5)
{
lastParagraph.Text = (lastParagraph.Text + Environment.NewLine + line).Trim();
success = true;
}
if (!success && count > 9)
_errorCount++;
}
count++;
}
if (lastParagraph != null)
subtitle.Paragraphs.Add(lastParagraph);
subtitle.Renumber();
}
示例13: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
var sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string allText = sb.ToString();
if (!allText.Contains("<page") || !allText.Contains("<cuepoint"))
return;
var xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(allText);
}
catch (Exception exception)
{
System.Diagnostics.Debug.WriteLine(exception.Message);
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("video/cuepoint"))
{
try
{
string text = node.SelectSingleNode("name").InnerText;
string start = node.SelectSingleNode("startTime").InnerText;
string end = node.SelectSingleNode("endTime").InnerText;
subtitle.Paragraphs.Add(new Paragraph(DecodeTimeCode(start), DecodeTimeCode(end), text));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}
示例14: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
var sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string xmlString = sb.ToString();
if (!xmlString.Contains("<USFSubtitles") || !xmlString.Contains("<subtitles>"))
return;
var xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(xmlString);
}
catch
{
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("subtitles/subtitle"))
{
try
{
string start = node.Attributes["start"].InnerText;
string stop = node.Attributes["stop"].InnerText;
string text = node.SelectSingleNode("text").InnerText;
subtitle.Paragraphs.Add(new Paragraph(DecodeTimeCode(start), DecodeTimeCode(stop), text));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}
示例15: LoadSubtitle
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
StringBuilder sb = new StringBuilder();
lines.ForEach(line => sb.AppendLine(line));
string xmlString = sb.ToString();
if (!xmlString.Contains("<Paragraph>") || !xmlString.Contains("<Text>"))
return;
XmlDocument xml = new XmlDocument();
xml.XmlResolver = null;
try
{
xml.LoadXml(xmlString);
}
catch
{
_errorCount = 1;
return;
}
foreach (XmlNode node in xml.DocumentElement.SelectNodes("Paragraph"))
{
try
{
string start = node.SelectSingleNode("StartMilliseconds").InnerText;
string end = node.SelectSingleNode("EndMilliseconds").InnerText;
string text = node.SelectSingleNode("Text").InnerText;
subtitle.Paragraphs.Add(new Paragraph(text, Convert.ToDouble(start, System.Globalization.CultureInfo.InvariantCulture), Convert.ToDouble(end, System.Globalization.CultureInfo.InvariantCulture)));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
_errorCount++;
}
}
subtitle.Renumber();
}