Разбить текстовый файл на определенное количество строк - C#

Узнай цену своей работы

Формулировка задачи:

Построчно читаю текстовый файл, обрабатываю эту строку (добавляю теги к некоторым словам) и записываю ее в html страницу. Есть переменная которая задает кол во строк в выходном HTML файле, например 100, необходимо при достижении этого количества строк создавать новый html файл и тд пока не обработается весь текст, те если в текстовом файле 250 строк, то в итоге должно получится 3 html файла out1.html out2.html out3.html вот код
public void TextToHtml(string filepath)
        {
            var writer = new StreamWriter("output.html", false, Encoding.GetEncoding(1251));
            writer.Write("<!DOCTYPE HTML><html><head><title>Text</title></head><body>");
            var lines = File.ReadLines(filepath, Encoding.GetEncoding(1251));
 
            foreach (var line in lines)
            {
                string result_str = line;
                string[] spl = line.Split(new char[] {' '});
 
                foreach (var word in spl)
                {
                    string word_temp = word.Trim(new char[] { ' ', ',', '.', '?', '!' });
                    if (dict.Contains(word_temp))
                    {
                        var pattern = String.Format(@"(?i)\b{0}\b", word_temp);
                        var word_tag = String.Format(@"<b><i>{0}</i></b>",word_temp);
                        result_str = Regex.Replace(result_str, pattern, word_tag); 
                        
                    }
                    
                }
                writer.Write(result_str+"<br>");
            }
            writer.Write("</body></html>");
            writer.Close();
            
        }
как наиболее правильно организовать данный функционал?

Решение задачи: «Разбить текстовый файл на определенное количество строк»

textual
Листинг программы
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
 
namespace cyb24 {
    class Program {
        static void Main() {
            //Что ищем
            string[] ss = { "Вова", "Юля", "Адвокат Юли", "Евгений" };                     
 
            //Читаем
            int i=0,cnt=0,l=ss.Length;
            StringBuilder sb=new StringBuilder();
            StreamWriter sw=new StreamWriter("output_"+i+".html", false, Encoding.GetEncoding(1251));
            sw.Write(@"<!DOCTYPE HTML><html><head><title>Text</title></head><body>");
            using (StreamReader sr=new StreamReader(new FileStream(@"in.txt", FileMode.Open, FileAccess.Read, FileShare.Read),Encoding.GetEncoding(1251))) {
                while (sr.Peek() >= 0) {
                    if (cnt==100) {
                        sw.WriteLine(@"</body></html>");
                        sw.Dispose();
                        i++;
                        sw=new StreamWriter("output_"+i+".html", false, Encoding.GetEncoding(1251));
                        sw.Write(@"<!DOCTYPE HTML><html><head><title>Text</title></head><body>");
                        cnt=0;
                    }
                    
                    //Меняем
                    string strIn=sr.ReadLine();
                    sb.Append(strIn);
                    for (int j=0; j<l; j++) 
                        foreach(Match m in Regex.Matches(strIn,ss[j],RegexOptions.IgnoreCase))
                            sb.Replace(m.Value, string.Format("<b><i>{0}</i></b>",m.Value));
 
                    sb.Append(@"<br>");
 
                    //Пишем
                    sw.WriteLine(sb.ToString());
                    sb.Clear();
                    cnt++;                     
                }                
            }
            sw.WriteLine("</body></html>");
            sw.Dispose();
 
            Console.ReadLine();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.455 из 5
Похожие ответы