Склоняем наименование(ий)

NetWood

Well-Known Member
Lotus team
17.04.2008
370
16
Питер
#1
Вот тут рядом редкие конструкции просклоняли. :) В том числе число прописью на мове и пр.
А есть ли примерчик для слова наименование рядом, типа
1 наименование
2 наименования
3 --
4 --
5 наименований
...
11 наименований
12 наименований
...
21 наименование
на собаках естессно
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#2
Ну что-то вроде такого?
Это писал для Default Value для мультизначного поля
Код:
count := 30;
@For( n := 1; n <= count; n := n + 1;
word := @Text( n ) + " наименовани";
rez := rez : @If( @Modulo( n; 10 ) = 1; word + "е"; 
@If( @Modulo( n; 10 ) = 2:3:4; word + "я"; word + "й")
) 
);
@Trim( rez )
тут исправленый код
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#4
ну и не так уж и сложно
Код:
@For( n := 980; n <= 1020; n := n + 1;
word := @Text( n ) + " наименовани";
rez := rez : @If( @Modulo( n; 10 ) = 1 & @Modulo( n; 100 ) != 11; word + "е"; 
@If( @Modulo( n; 10 ) = 2:3:4 & !( @Modulo( n; 100 ) = 12:13:14 ); word + "я"; word + "й")
) 
);
@Trim( rez )
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#6
мне кажется или правило можно так сделать?
то, что имеет в первом десятке 1, то "наименование", кроме 11
1, 21, 31, 41 - наименование
аналогично
2 - 4, - наименования
5 - 9, кратно 10, а также 0, 11-19 - наименований
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#8
а зачем @Modulo( n; 100:1000 ) - по-моему, достаточно только 100 или взять последние 2 цифры?
не успела попробовать, отвлекли по работе :wacko:
Akupaka - по алгоритму ты прав.