Как правильно выровнять текстовые файлы данных CSV с вкладками с помощью C #? - PullRequest
2 голосов
/ 19 сентября 2010

У меня есть следующий 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)

Как-то так ...

1 Ответ

2 голосов
/ 19 сентября 2010

Вкладка - это просто логический разделитель.У него нет магической способности заставлять данные выравниваться, и это зависит от того, как ваш зритель интерпретирует вкладки;это может означать «отступ в 4 символа», это может означать «округление пэда до ближайшего 8-го символа».Как таковой, он обычно очень зависит от существующих длин данных.В Word это обычно интерпретируется как «переход к следующей предварительно определенной вкладке», но это зависит от: a) какие вкладки определены в Word и b: насколько широкие данные уже есть (то есть, что «дальше»)

В Excel (или любой электронной таблице) это обычно будет интерпретироваться как столбцы.По этой причине электронная таблица, вероятно, является лучшим вариантом для просмотра табличных данных с разделителями (если вам нужны столбцы).

Итак;какой просмотрщик вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...