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

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


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

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

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