Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про число [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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо