Редактирование текста с файла - C#
Формулировка задачи:
Ребята помогите такая задача:
Разработать класс, который содержит метод для роботы с текстовой информацией: считывание текста с файла Input.txt, форматирование текста и запись результата в файл Output.txt.
А вот само задание: совершить корректирование текста, удаляя символы перехода на новую строку, которые не завершают абзац. Считать, что абзац начинается с красной строки - символа табуляции.
Совершенно не пойму как это обозначить, с созданием и считывание файла проблем не возникает, а вот как корректировать текст вообще не пойму, помогите плз!
Решение задачи: «Редактирование текста с файла»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CyberForum
{
public class Program
{
public static void Main(string[] args)
{
string sourcefile = "Input.txt";
string destfile = "Output.txt";
string delimiter = "\t";
TextCorrector.CorrectNewLines(sourcefile, destfile, delimiter);
}
}
public class TextCorrector
{
public static void CorrectNewLines(string sourceFilePath, string destFilePath, string delimiter)
{
string prevLine = null, currLine = null;
StreamReader reader = null;
StreamWriter writer = null;
try
{
reader = new StreamReader(sourceFilePath);
writer = new StreamWriter(destFilePath, false);
prevLine = reader.ReadLine();
if (prevLine != null && !reader.EndOfStream)
{
while (!reader.EndOfStream)
{
currLine = reader.ReadLine();
if (CheckCurrentLine(currLine, delimiter))
{
writer.Write(prevLine);
writer.Write(" ");
prevLine = currLine.Substring(delimiter.Length);
}
else
{
writer.WriteLine(prevLine);
prevLine = currLine;
}
}
if (prevLine != null)
{
writer.WriteLine(prevLine);
}
}
else
{
writer.WriteLine(prevLine);
}
}
catch { throw; }
finally
{
if (reader != null) reader.Close();
if (writer != null)
{
writer.Flush(); writer.Close();
}
}
}
private static bool CheckCurrentLine(string currentLine, string delimiter)
{
bool result = (currentLine != null) && (currentLine.Length >= delimiter.Length);
if (result)
{
for (int index = 0; index < delimiter.Length; ++index)
{
if (currentLine[index] != delimiter[index])
{
result = false; break;
}
}
}
return result;
}
}
}