Формат таблицы в консольном приложении C # со строками различной длины - PullRequest
1 голос
/ 14 декабря 2010

Я просмотрел веб-сайт и не смог найти ничего, что конкретно касалось проблемы.

У меня есть консольное приложение, которое просматривает циклы, находит строки длиной от 7 до 20 символов, плюс дату / время, плюс флаг и файл.

    Console.Write("=========================================================================");
Console.WriteLine("Start time: " + DateTime.UtcNow);
Console.Write("=========================================================================");
Console.WriteLine("All times in UTC.");
Console.Write("=========================================================================");
Console.WriteLine(String.Format("{0,-8}{1,17}{2,37}{3,13}", "Time", "File:Offset", "F", "String"));
Console.Write("=========================================================================");

Проблема в том, что строка и имя файла + путь могут быть разной длины. Выходные данные используют тот же формат строки, но в зависимости от длины имени файла форматирование отключено.

Есть ли способ, чтобы консоль записывала элементы, начиная с фиксированной позиции каждый раз.
Поэтому Time начинается с 0, file: offsett начинается с 17, F начинается с 37, а String начинается с 40. Таким образом, он правильно форматирует. Кроме того, это может быть немного сложнее, но может ли оно обрезать все, что не помещается в столбце?

Спасибо!

1 Ответ

1 голос
/ 14 декабря 2010

Вы можете использовать строковую функцию PadLeft в c # для достижения желаемого.

подробнее здесь http://msdn.microsoft.com/en-us/library/system.string.padleft(v=vs.71).aspx

...