Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 22 июн 2018 09:08

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Функции для перевода числа в текст в Репортс!
СообщениеДобавлено: 15 янв 2018 21:16 
Участник
Участник

Зарегистрирован:
21 янв 2017 16:21
Сообщения: 3
// обидві функції працюють лише зі строковими параметрами (S:String) та видають результат у строковому вигляді :String;

function FormatGroshi(S:String):String; //форматує дробну частину строкового значення числа.
//Якщо в дробній частині більше двох символів, відкидує зайві
//Якщо дробної частини немає додає розділювач крапку і два значущих символа '.00'
var S_GR, S_COP:String; // змінна S_GR- це ціла частина строкового значення числа (гривні),
// змінна S _COP- це дробна частина строкового значення числа
I:integer;
begin
I:=Pos(S,'.'); //визначає наявність у строковому значенні
// числа розділювача '.' (тобто дробної частини)
// якщо I=0 то дробної частини не має, якщо I>0 дробова чатина є
S_GR:= StringPart(S,1,'.');//визначення цілого значення в гривнях
S_COP:= Copy(StringPart(S,2,'.'),1,2); // копіює дві перші цифри дробної частини
if I=0 // якщо виконується умова (if) тоді (then) до значення цілої частини додається '.00'
then S_COP:='.00';
Result:=S_GR+S_COP;
end;

function GroshiPropisом(S:String):String;// переводить значення строкового значення числа у текстовий вигляд
// залишаючи значення копійок у цифрах: результат =( 1002.03-одна тисяча дві гривні 03 копійки)
var S_GR, S_COP:String;// змінна S_GR- це ціла частина строкового значення числа (гривні),
// змінна S _COP- це дробна частина строкового значення числа
begin
S_GR:= StringPart(S,1,'.');//визначення цілого значення в гривнях
S_COP:= Copy(StringPart(S,2,'.'),1,2);// скопіювати перші дві цифри дробної частини (копійки)
if S_COP ='' then S_COP:='.00'; //Якщо дробної частини немає додає розділювач крапку і два значущих символа '.00'
S_GR_propis_Vidminok:=Money(StrToInt(S_GR),'гривня;гривні;гривень');// визначає яке із 3-х
//значень списку 'гривня;гривні;гривень' у текстовому виразі числа
//(одна гривня, дві гривні, п"ять гривень)
S_COP_propis_Vidminok:=Money(StrToInt(S_COP),'копійка;копійки;копійок');// визначає яке із 3-х
//значень списку 'копійка;копійки;копійок' у текстовому виразі числа необхідно
//додати у строку (00 копійок, 02 копійки, 01 копійка)
if S_COP ='00' then S_COP_propis_Vidminok:='копійок';
S_GR_propis:= NumToStr(StrToInt(S_GR),'0','1')+' '+ S_GR_propis_Vidminok;
S_COP_propis:=S_COP+' '+ S_COP_propis_Vidminok;
Result:= S_GR_propis+' '+ S_COP_propis; //результат роботи функції- це будь яке число (сума) переведене до текстового вигляду
end;


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Функции для перевода числа в текст в Репортс!
СообщениеДобавлено: 16 янв 2018 00:48 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 235
Откуда: м.Львiв
Код:
function StrToMoney (S: String): String;
   var num, denom: Integer;
     DecDelimeter: Char;                                         
begin
   DecDelimeter:=Copy(FloatToStr(1/10),2,1);
   S     := FormatFloat('0.00', StrToFloat(S));
   num   := StrToInt(StringPart(S,1,DecDelimeter));
   denom := StrToInt(StringPart(S,2,DecDelimeter));                         
   Result:=NumToStr(num,'0','1')+Money(num,'гривня;гривні;гривень')+' '+StringPart(S,2,DecDelimeter)+' '+Money(denom,'копійка;копійки;копійок');                                         
end;         

_________________
Простіше написати неправильну програму, ніж зрозуміти правильну


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB