Beispiel #1
0
        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);
                }
            }
        }
Beispiel #6
0
        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()));
                }
            }
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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);
            }
        }