2010-01-20 2 views
1

Рассматривайте У меня есть .txt файл, в формате,Дайте интервал табуляции после первого слова в текстовом файле

Name: Abc 

Id: 123 

Age: 12 

Address: xyz 

Я хочу, чтобы преобразовать этот файл формы,

Name : Abc 

Id  : 123 

Age  : 12 

Address : xyz 

т.е. Колон после каждой плитки должен перемещать 2 или 3 области табуляции. Название будет только одним словом и не будет иметь пробелов. Таким образом, название не будет иметь форму (ваш возраст :). Поэтому я могу просто прочитать первое слово и дать вкладки после этого.

Как я могу это сделать? и будет делать в perl проще или на любом другом языке.?

ответ

2

Найдите длину самого большого слова, добавьте к нему n пробелов. Это дополнение, которое нужно использовать при форматировании каждого слова.

PHP, например, имеет функцию sprintf(), на которую вы можете посмотреть. Различные другие языки также обеспечивают форматированный вывод.

В PHP должен работать следующий формат: "%-<max>s : %s", где <max> - это длина самого большого слова + некоторое дополнение.

sprintf("%-25s : %s", $key, $value); 

- делает строку влево выровненной.

+1

и если максимальная длина неизвестна до времени выполнения, то sprintf ("% - * s:% s", $ max_length, $ key, $ Value). –

Смежные вопросы