У меня есть следующий stringBuilder, который я использую как часть макета журнала Log4net.
var sb = new StringBuilder(DateTime.Now.ToString(DateFormatString, CultureInfo.InvariantCulture));
sb.Append("\t");
sb.Append(log.EventAction);
sb.Append("\t");
sb.Append(log.Id);
sb.Append("\t");
sb.Append(log.MessageId);
sb.Append("\t");
sb.Append(log.CodeBlock);
sb.Append("\t");
sb.Append(log.Details);
Я бы ожидал, что \ t (tab) даст мне точную вкладку в качестве разделителя, чтобы при визуальном осмотре текстового файла столбцы выравнивались.Однако это не так!
Столбцы не выровнены, и когда я открываю текстовый файл в MS Word и «Отображение специальных символов», я вижу, что те же записи на вкладке, кажется, существуют, но визуальнов блокноте столбцы не совпадают.
Я в замешательстве, может быть, мне нужно пересмотреть определение вкладки, кто-нибудь может дать представление или обойти эту проблему?
Обновление:
Я заметил, что если у меня есть строки одинаковой длины, столбцы выравниваются, например:
string1(len5) TAB string2(len5) TAB string3(len5)
string1(len5) TAB string2(len5) TAB string3(len5)
string1(len5) TAB string2(len5) TAB string3(len5)
Однако, если строки различаются по длине, присутствует символ табуляции, но строкине выравнивайте:
string1(len5) TAB string2(len5) TAB string3(len5)
string1(len10) TAB string2(len5) TAB string3(len5)
string1(len5) TAB string2(len5) TAB string3(len5)
string1(len10) TAB string2(len5) TAB string3(len5)
Как-то так ...