Разбить текстовый файл на определенное количество строк - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д