|
Иногда возникает необходимость вывести в каком-либо
поле существительное в нужном падеже, в зависимости от числительного
(например 1 день, 2 дня, 5 дней). Не буду вдаваться в теорию, просто
приведу пример такой функции. |
Пример
|
function DigitStr(Value: Double; S1, S2, S3:
String): String;
var S:String;
tS : String;
begin
Result:='';
tS:=Copy(CurrToStr(Value),Length(CurrToStr(Value)),1);
if (Value>=5)and(Value<=20) then S:=S3 else begin
if (tS='1') then S:=S1;
if (tS>='2')and(tS<='4') then S:=S2;
if ((tS>='5')and(ts<='9'))or(ts='0') then S:=S3;
end;
Result:=S;
end; |
|
Как это работает? Очень просто: вызываем функцию
DigitStr(12,'день','дня','дней'). В результате получим 'дней'.
Это только один из вариантов решения. Могут быть и другие.
Все :-)
|
|
|
|