private void ImportLineMode(IEnumerable <string> lines) { var item = new List <string>(); foreach (string loopLine in lines) { // Replace user line break character with Environment.NewLine. string line = loopLine; if (comboBoxLineBreak.Text.Length > 0) { foreach (string splitter in comboBoxLineBreak.Text.Split(';')) { var tempSplitter = splitter.Trim(); if (tempSplitter.Length > 0) { line = line.Replace(tempSplitter, Environment.NewLine); } } } if (string.IsNullOrWhiteSpace(line)) { if (!checkBoxRemoveEmptyLines.Checked) { item.Add(string.Empty); } } else if (!PlainTextImporter.ContainsLetters(line)) { if (!checkBoxRemoveLinesWithoutLetters.Checked) { item.Add(line.Trim()); } } else { string text = line.Trim(); if (checkBoxAutoBreak.Enabled && checkBoxAutoBreak.Checked && comboBoxLineMode.SelectedIndex == 0) { text = Utilities.AutoBreakLine(text); } item.Add(text); } if (item.Count >= comboBoxLineMode.SelectedIndex + 1) { _subtitle.Paragraphs.Add(new Paragraph { Text = string.Join(Environment.NewLine, item.ToArray()) }); item.Clear(); } } if (item.Count > 0) { _subtitle.Paragraphs.Add(new Paragraph { Text = string.Join(Environment.NewLine, item.ToArray()) }); } }
public void PlainTextImportAutoSplit_Two_Lines() { var importer = new PlainTextImporter(splitAtBlankLines: true, removeLinesWithoutLetters: true, numberOfLines: 2, endChars: ".!?", singleLineMaxLength: 43, language: "en"); var result = importer.ImportAutoSplit(new List <string> { LoremIpsum }); Assert.IsTrue(result.Any(p => p.Contains(Environment.NewLine))); }
public void PlainTextImportAutoSplit5() { var importer = new PlainTextImporter(splitAtBlankLines: true, removeLinesWithoutLetters: true, numberOfLines: 2, endChars: ".!?", singleLineMaxLength: 43, language: "en"); var lines = new List <string> { "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789", }; var result = importer.ImportAutoSplit(lines); Assert.AreEqual(0, result.Count); }
public void PlainTextImportAutoSplit2() { var importer = new PlainTextImporter(splitAtBlankLines: true, removeLinesWithoutLetters: false, numberOfLines: 2, endChars: "", singleLineMaxLength: 43, language: "en"); var lines = new List <string> { "How are you? I'm fine.", "", "Last line." }; var result = importer.ImportAutoSplit(lines); Assert.AreEqual(2, result.Count); Assert.AreEqual("How are you? I'm fine.", result[0]); Assert.AreEqual("Last line.", result[1]); }
public void PlainTextImportAutoSplit_Max_Single_Line_Length() { var importer = new PlainTextImporter(splitAtBlankLines: true, removeLinesWithoutLetters: true, numberOfLines: 2, endChars: ".!?", singleLineMaxLength: 43, language: "en"); var result = importer.ImportAutoSplit(new List <string> { LoremIpsum }); foreach (var line in result) { foreach (var s in line.SplitToLines()) { Assert.IsFalse(s.Length > 43); } } }
private void ImportMultipleFiles(ListView.ListViewItemCollection listViewItemCollection) { foreach (ListViewItem item in listViewItemCollection) { string line; try { line = GetAllText(item.Text).Trim(); } catch { line = string.Empty; } line = line.Replace("|", Environment.NewLine); if (comboBoxLineBreak.Text.Length > 0) { foreach (string splitter in comboBoxLineBreak.Text.Split(';')) { var tempSplitter = splitter.Trim(); if (tempSplitter.Length > 0) { line = line.Replace(tempSplitter, Environment.NewLine); } } } if (string.IsNullOrWhiteSpace(line)) { if (!checkBoxRemoveEmptyLines.Checked) { _subtitle.Paragraphs.Add(new Paragraph()); } } else if (!PlainTextImporter.ContainsLetters(line)) { if (!checkBoxRemoveLinesWithoutLetters.Checked) { _subtitle.Paragraphs.Add(new Paragraph(0, 0, line.Trim())); } } else { _subtitle.Paragraphs.Add(new Paragraph(0, 0, line.Trim())); } } }
private void ImportAutoSplit(string[] textLines) { var sub = new Subtitle(); foreach (var line in textLines) { sub.Paragraphs.Add(new Paragraph(line, 0, 0)); } var language = LanguageAutoDetect.AutoDetectGoogleLanguage(sub); var plainTextImporter = new PlainTextImporter(checkBoxAutoSplitAtBlankLines.Checked, checkBoxAutoSplitRemoveLinesNoLetters.Checked, (int)numericUpDownAutoSplitMaxLines.Value, checkBoxAutoSplitAtEnd.Checked ? textBoxAsEnd.Text : string.Empty, (int)numericUpDownSubtitleLineMaximumLength.Value, language); ImportLineMode(plainTextImporter.ImportAutoSplit(textLines)); }
private void ImportSplitAtBlankLine(IEnumerable <string> lines) { var sb = new StringBuilder(); foreach (string line in lines) { if (string.IsNullOrWhiteSpace(line)) { if (sb.Length > 0) { string text = sb.ToString().Trim(); if (checkBoxAutoBreak.Enabled && checkBoxAutoBreak.Checked) { text = Utilities.AutoBreakLine(text); } _subtitle.Paragraphs.Add(new Paragraph { Text = text }); sb.Clear(); } } else if (!PlainTextImporter.ContainsLetters(line)) { if (!checkBoxRemoveLinesWithoutLetters.Checked) { sb.AppendLine(line.Trim()); } } else { sb.AppendLine(line.Trim()); } } if (sb.Length > 0) { SplitSingle(sb); } }