2013-01-16 4 views
0

Я могу прочитать данные, содержащиеся в текстовом файле. Эти данные затем кодируются для отображения в представлении datagridview. Исходный формат данных разделен запятыми. Теперь я хочу использовать данные datagridview, чтобы сохранить его, используя tab-delimited.Текстовый файл с разделителями табуляции

Проблема заключается в том, что не все поля одинаковой длины так, дает мне что-то подобное,

A B C 
1 567889 123 

и она должна быть,

A B  C 
1 567889 123 

второй пример того, что я хочу,

ABCDE ABC  A 
123 1258741 528712 

Таким образом, независимо от столбца длины столбца или столбца длины данных.

Я использовал строковый строитель как, sb.Append("{0}\t,{1}\t",field1, field2), но он не работает. Также попробовал write.Write(field + "\t")

+0

Таким образом, вы не хотите Tab delimeted на заголовки только данные? и все данные столбца имеют длину ame, например: столбец «B» имеет 6 номеров или может быть больше/меньше, если это так, к чему вы хотите согласовать заголовки, самый длинный столбец или только данные столбцов первой строки ? –

+0

Можете ли вы уточнить, что «это не работает», каков результат? Что вы используете для записи в файл? Должно ли быть достаточно добавить две вкладки вместо одной? –

+0

Результат - первый пример. Проблема заключается в том, что заголовок не выравнивается с данными правильно. Я хочу, чтобы он совпадал с совпадением заголовка с данными, независимо от того, длиннее ли текст заголовка, чем столбец данных или наоборот. – SpcCode

ответ

0

Notepad - это неправильный инструмент для использования, если вы хотите визуализировать элементы данных переменной длины с вертикальной ориентацией, разделенные символом TAB.

Используйте редактор, который поддерживает эластичные язычки, такие как: http://nickgravgaard.com/elastictabstops/ (прокрутите вниз до демонстрации Java-апплета, чтобы вы могли попробовать вставить текст с помощью отдельных табуляторов).

Или вставьте текст в инструмент, предназначенный для работы со столбцами, такими как Excel. Он автоматически распознает вкладку как разделитель столбцов.

0

Вы можете использовать String.PadRight для форматирования текста таким образом.

Вы просто хотите, чтобы Pad использовал '' с длиной заголовка и добавил вкладку.

Пример:

string line = string.Format("{0}\t{1}\t{2}", field1.PadRight(header1.Length, ' ') 
              , field2.PadRight(header2.Length, ' ') 
              , field3.PadRight(header3.Length, ' '))); 

Результат:

ABCDE A  ABC 
5  356475 5657 
566  66  4 
Смежные вопросы