Интегрированная среда разработки Delphi


Поиск по сайту и не только :-))
Гостевая книга



 

 

Иногда возникает необходимость вывести в каком-либо поле существительное в нужном падеже, в зависимости от числительного (например 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,'день','дня','дней'). В результате получим 'дней'.
Это только один из вариантов решения. Могут быть и другие.
Все :-)
 
 
Автор: Автор сайта
 
Сайт управляется системой uCoz