![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про число [D2005, XP]
..::KraN::.. © (2007-04-21 12:59:00)В моей программе в StatusBar'е есть функция подсчёта количества строк. Вопрос такой: как сделать чтобы всё там было по русски: при окончании числа на 1 писалось, например, "...строка", при окончании на число 5, писалось "... строк".
begin...end (2007-04-21 13:50:00) [1]const
Words: array [1..3] of string = ('строк', 'строка', 'строки');
var
N, I: Integer;
Text: string;
begin
N := 1000;
if (N mod 10 in [0, 5..9]) or (N div 10 mod 10 = 1) then
I := 1
else if N mod 10 = 1 then
I := 2
else
I := 3;
Text := Format('%d %s', [N, Words[I]])
end
MBo (2007-04-21 13:49:00) [2]s := 'строк'
if i mod 100 in 11..19 - ничего не делать
иначе
case i mod 10
1: + 'a'
2,3,4: + 'и'
иначе ничего не делать
логику можно и изменить, сначала i mod 10 проверять, 0, 5..9 - ничего не делать, а для 1..4 - вторую цифру проверять.
Leonid Troyanovsky (2007-04-21 13:37:00) [3]
> ..::KraN::.. © (21.04.07 12:59)
> В моей программе в StatusBar'е есть функция подсчёта количества
> строк. Вопрос такой: как сделать
Format ('%s %d', ['Количество строк:', num]);
--
Regards, LVT.