Codeby web-security - новый курс от Codeby Security School

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...


Программное выравнивание текста по ширине

Небольшая заметка, в которой хочу показать на простом примере, как сделать выравнивание текста по ширине в текстовом файле.

И так предположим, что у нас есть файл, в котором содержится несколько записей.

текстовый файл

Задача: выровнять текст по ширине так, чтобы в файле получилось две колонки.

две колонки

1. Создаём новый проект типа Windows Forms Application.

2. Добавляем на форму кнопку (Button) и OpenFileDialog (ofd).

Windows Forms Application

3. Подписываемся на событие Button.Click, после чего в обработчике данного события добавляем следующий код:

using System.IO; //добавить
private void button1_Click(object sender, EventArgs e)
{
//открываем диалоговое окно выбора файла
if (ofd.ShowDialog() == DialogResult.OK)
{
List<string> list = new List<string>();
//построчно читаем файл
foreach (string str in File.ReadAllLines(ofd.FileName))
{
//отделяем текст от чисел
list.AddRange(str.Split( new char [] {' '}));
}

Вот так выглядит список после разбивки.


Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


метод Split

     //открываем поток на запись в файл
using (StreamWriter sw = new StreamWriter(ofd.FileName))
{
for (int i = 0; i < list.Count; i += 2)
{
//делаем выравнивание
sw.WriteLine(String.Format("{0, -20} {1}", list[i], list[i + 1]));
}
}
MessageBox.Show("Готово!");
}
}

В строке формат вместо чисел 0 и 1 подставляются значения: list[i] и list[i + 1].

Для того чтобы текст выровнялся по ширине, вторым значением (в фигурных скобках) указываем длину столбца, в данном случае &#8212; это число -20. Даже если строка превысит данную длину, то между столбцами всё равно всегда будет создаваться один пробел.

Само же число должно быть отрицательным, чтобы отступ шёл в правую, а не в левую сторону, как например, на картинке ниже.

Выравнивание текста

Пример с тремя колонками:

String.Format("{0,-10} {1,-10} {2}", "BMW", "X5", 2010));

результат

три колонки

Читайте также:


Codeby Market от Сodeby

Мы запустили свой магазин CodebyMarket Equipment for InfoSec. Уже добавили RaspberryAlfa Long-RangeOrange PiArduino и многое другое. Купить Pentesting Devices