Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > форматированный вывод данных


Автор: Aleshka 12.3.2008, 18:34
Подскажите, какие лучше использовать функции чтобы данные мои выводились в виде таблицы
Поле1            Поле2           Поле3          Поле4           Поле5
Данные1      Данные2       Данные3     Данные4       Данные5
Данные1      Данные2       Данные3     Данные4       Данные5 
Данные1      Данные2       Данные3     Данные4       Данные5
Данные1      Данные2       Данные3     Данные4       Данные5 

Я не пойуму что лучше для данных целей использовать sprintf, или использовать для этих целей формат выходных записей:
format Name = 
Вывод значений. 


Автор: mcsseifer 12.3.2008, 18:36
sprintf проще и быстрее если вам необходимо использовать шаблон один раз....если вы используете формат много в различных метсах то лучше формат

Автор: Aleshka 13.3.2008, 15:51
что-то я понять не могу разве я могу использовать printf для выравнивания полей, например чтобы на каждое поле отводить по 15 символов.  И каждое значение выравнивалось по левому полю?

Автор: Aleshka 14.3.2008, 11:56
НЕ пойму что я неправильнно делаю c printf читаю документацию и делаю по ней, но результат получаю не тот что надо. 
Код

printf "%-10s          %-10s          %-10s          %-10s\n", $keys, $ips, $pptps, $ips;

Вывод получаю следующий:
Jan 17  20:16:24              travel                come              travel
Feb  2 13:28:28             husband                come             husband
Feb 12 12:14:14                home                come                home
Aug 23 13:15:15                work                come                work
А я хочу
Jan 17  20:16:24               travel               come                 travel
Feb  2 13:28:28                husband           come                husband
Feb 12 12:14:14               home                come                home
Aug 23 13:15:15               work                 come                work


Автор: amg 14.3.2008, 12:45
Aleshka, попробуй такой формат: "%-17s%-10s%-10s%-10s\n"

Автор: Aleshka 14.3.2008, 13:05
оооо а так работает! Че за ерунда такая?

Автор: Itsys 14.3.2008, 13:09
Ты же на первое поле отвел всего 10 символов, а у тебя их как минимум 15

Автор: Aleshka 14.3.2008, 14:35
Точно.  Я уже понял свою ошибку вот я туплю!! А я уже доку прошерсил вдоль и поперек. Спасибо. Считаю что тему можно закрывать!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)