Неправильно работает Format

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Неправильно работает Format

Сообщение А.Н. » 26.03.2010 19:53:17

Мне нужно выводить номера с заполнением нулями слева.
Примерно так:
00001
00023
00210

Как понимаю, Format должен поддерживать все спецификаторы printf?

Код: Выделить всё
strgridPolises.Cells[1, i] := Format('%0*d', [digits_count, j]);

Вот на такое оно выдаёт диалог с ошибкой, типа "Неверный спецификатор формата " '. :(

А, когда делаю так:
Код: Выделить всё
strgridPolises.Cells[1, i] := Format('%0' + digits_count + 'd', [j]);

Тоже не работает.

Где же я, в этот раз, накосячил?
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Неправильно работает Format

Сообщение скалогрыз » 26.03.2010 20:00:05

А.Н. писал(а):Как понимаю, Format должен поддерживать все спецификаторы printf?
Где же я, в этот раз, накосячил?


Format должен поддерживать все специфакторы Delphийского Format() ;)

вот что тебе нужно:
Код: Выделить всё
  Format('%.' + digits_count + 'd', [j])



описание здесь: http://www.freepascal.org/docs-html/rtl ... ormat.html

Код: Выделить всё
'%' [[Index]':'] ['-'] [Width] ['.' Precision] ArgType


D
Decimal format. The next argument in the Args array should be an integer. The argument is converted to a decimal string. If precision is specified, then the string will have at least Precision digits in it. If needed, the string is (left) padded with zeroes.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Неправильно работает Format

Сообщение А.Н. » 26.03.2010 20:03:20

Спасибо. :)
Сделал так:
Код: Выделить всё
strgridPolises.Cells[1, i] := Format('%.*d', [digits_count, j]);
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Неправильно работает Format

Сообщение скалогрыз » 26.03.2010 20:05:12

А.Н. писал(а):
Код: Выделить всё
strgridPolises.Cells[1, i] := Format('%.*d', [digits_count, j]);

лишь бы работало... :) а то рекурсия в таких местах (парсинг и автоподстановка) меня настораживает...
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

Рейтинг@Mail.ru