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