Дан текстовый файл. Выровнять текст по ширине (то есть и по левому, и по правому краю) - C#
Формулировка задачи:
Помогите пожалуйста с задачей
Дан текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста разделяются одной пустой строкой. Выровнять текст по ширине (то есть и по левому, и по правому краю), увеличив в каждой непустой строке (кроме последних строк абзацев) количество пробелов между словами, начиная с первого/последнего пробела в строке (ширину текста считать равной 50).
Решение задачи: «Дан текстовый файл. Выровнять текст по ширине (то есть и по левому, и по правому краю)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
StreamReader sr;
StreamWriter sw ;
try
{
sr = new StreamReader(File.Open("file.txt", FileMode.Open));
sw = new StreamWriter(File.Open("outFile.txt", FileMode.Create));
}
catch (FileNotFoundException ex)
{
Console.WriteLine("File not found! " + ex.Message);
return;
}
string line = sr.ReadLine();
while (!sr.EndOfStream)
{
string tmp1 = sr.ReadLine();
tmp1 = tmp1.Trim(' ');
if (tmp1 == "")
{
sw.WriteLine(line + "\n");
line = sr.ReadLine();
line = line.Trim(' ');
tmp1 = sr.ReadLine();
if (tmp1 == null)
{
sw.WriteLine(line + "\n");
break;
}
}
while (line.Length < 50)
for (int i = 0; i < line.Length; i++)
{
if (line[i] == ' ')
{
line = line.Insert(i++, " ");
}
if (line.Length == 50)
break;
}
sw.WriteLine(line);
line = tmp1;
}
sr.Close();
sw.Close();
Console.WriteLine("Done!");
Console.ReadKey();
}
}
}