|
Тема
|
ПОМОЩ! СПЕШНО
|
|
Автор | Nikolai (Нерегистриран) |
Публикувано | 10.10.05 11:33 |
|
Здравейте колеги Моля Ви кажете как ще стане в едно поле от тип tEdit да напишем число и в друго поле от тип Tedit да се визуализира числото с думи???
Благодаря предварително
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: Nikolai]
|
|
Автор |
vido (непознат
) |
Публикувано | 10.10.05 12:06 |
|
Мии... с функция която има входен параметър Integer, а изходния резултат е String. А самата функция трябва да я напишеш. Примери можеш да намериш в нета. Аз такава функция я писах първо няколко дена, а после я дооправях още много. Така че не ми се дава, а и правата са на фирмата. Виждал съм примери дори и за английски, така че потърси. Мисля, че дори във форума имаше подоби теми.
Редактирано от vido на 10.10.05 12:08.
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: vido]
|
|
Автор | Nikolai (Нерегистриран) |
Публикувано | 10.10.05 12:09 |
|
Много ми помогна няма що!!! Благодаря
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: Nikolai]
|
|
Автор |
vido (непознат
) |
Публикувано | 10.10.05 12:24 |
|
Сажалявам, но мога да ти помогна само с идея:
разделям числото (цялата част) на сотици (N mod 1000),
стохилядни ((N div 1000) mod 1000) и т.н. Отделните числа ( < 1000), си правиш функция която прави текста. Там идеята е подобна - разделяш на единици, десетици и стотици. Особенно е с 11 - 19. Проблем е и каде да сложиш "И", а също и множественото число. С дробната част е аналогично.
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: Nikolai]
|
|
Автор |
TRN (член) |
Публикувано | 10.10.05 12:52 |
|
Можеш да дръпнеш . Преди няколко години я правих за текстово показване на парични стойности, ако ти харесва, можеш да я поправяш както си искаш. Аз също съм работил доста по нея, но все пак съм ползвал и готов код от други.
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: TRN]
|
|
Автор | Nikolai (Нерегистриран) |
Публикувано | 10.10.05 13:14 |
|
Здравей TRN Благодаря ти сърдечно само че нямам достъп до Data.bg
Моля те публикувай го в отговора си!!!
| |
|
Може да погледнеш и това:
Понеже нямаш достъп до Data.bg ето го и тук:
[code]
function Slovom(R:Real):string;
var Lv,St:integer;
const Ed:array[1..9]of string=('един','два','три','четири','пет','шест','седем','осем','девет');
function DesSlov(I:integer):string;
const Des='десет';
begin
If I<10 then begin Result:=Ed[ i ];Exit;end;
If I=10 then begin Result:=Des;Exit;end;
If I=11 then begin Result:=Concat('едина',Des);Exit;end;
If I<20 then begin Result:=Concat(Ed[ I mod 10],'на',Des);Exit;end;
If ((I mod 10)=0)
then Result:=Concat(Ed[I div 10],Des,' ')
else Result:=Concat(Ed[I div 10],Des,' и ',Ed[I mod 10]);
end;
function StoSlov(I:integer):string;
const Sto='сто';
begin
If I<100 then begin Result:=DesSlov(I);Exit;end;
If I<200 then Result:=Sto else
If I<300 then Result:='двеста 'else
If I<400 then Result:='триста 'else
Result:=Concat(Ed[I div 100],Sto,'тин ');
If ((I mod 100)=0)then Exit;
If ((I mod 10)=0)or((I mod 100)<20)
then Result:=Concat(Result,' и ',DesSlov(I mod 100))
else Result:=Concat(Result,' ',DesSlov(I mod 100));
end;
function HilSlov(I:integer):string;
var Hil,Sto:integer;
begin
If I<1000 then begin Result:=StoSlov(I);Exit;end;
Hil:=I div 1000;Sto:=I mod 1000;
If Hil=1
then begin
If Sto=0 then begin Result:='хиляда';Exit;end;
If (((Sto mod 10)=0)or(Sto<20))and((Sto<=100)or((Sto mod 100)=0))
then begin Result:=Concat('хиляда и ',StoSlov(Sto));Exit;end;
Result:=Concat('хиляда ',StoSlov(Sto));
Exit;
end;
If Hil=2
then begin
If Sto=0 then begin Result:=Concat('две хиляди');Exit;end;
If (((Sto mod 10)=0)or(Sto<20))and((Sto<=100)or((Sto mod 100)=0))
then begin Result:=Concat('две хиляди и ',StoSlov(Sto));Exit;end;
Result:=Concat('две хиляди ',StoSlov(Sto));
Exit;
end;
If Sto=0 then begin Result:=Concat(StoSlov(Hil),' хиляди');Exit;end;
If (((Sto mod 10)=0)or(Sto<20))and((Sto<=100)or((Sto mod 100)=0))
then begin Result:=Concat(StoSlov(Hil),' хиляди и ',StoSlov(Sto));Exit;end;
Result:=Concat(StoSlov(Hil),' хиляди ',StoSlov(Sto));
end;
function MilSlov(I:integer):string;
var Mil,Hil:integer;
begin
If I<1000000 then begin Result:=HilSlov(I);Exit;end;
Mil:=I div 1000000;Hil:=I mod 1000000;
If Mil=1
then begin
If Hil=0
then Result:='един милион '
else Result:=Concat('един милион и ',HilSlov(Hil));
Exit;
end;
If Hil=0 then begin Result:=Concat(StoSlov(Mil),' милиона ');Exit;end;
If ((Hil div 1000)>0)
then Result:=Concat(StoSlov(Mil),' милиона ',HilSlov(Hil))
else Result:=Concat(StoSlov(Mil),' милиона и ',HilSlov(Hil));
end;
begin
If Abs(R)>=1000000000 then begin Str(R:16:2,Result);Result:=Result+' лв.';Exit;end;
Lv:=Trunc(Abs(R)); St:=Round((Abs(R)-Trunc(Abs(R)))*100);
Result:=' лв. '+Format('%2.2d',[St])+' ст.';
If Lv=0 then begin Result:='нула'+Result;Exit;end;
If R>0
then Result:=MilSlov(Lv)+Result
else Result:='минус '+MilSlov(Lv)+Result;
end;
[/code]
Не съм го писал аз и ако има проблеми ще трябва сам да си ги оправяш.Редактирано от SAGE_BS на 10.10.05 17:27.
| |
Тема
|
Re: ПОМОЩ! СПЕШНО
[re: Nikolai]
|
|
Автор |
TRN (член) |
Публикувано | 10.10.05 19:24 |
|
Напиши поне дин email за връзка, или се регистрирай и си въведи данните.
Не ми се иска форума да го пълним с код.
| |
|
Ако не си се оправил, дай майл да ти пратя нещо примерно...
| |
|
|
|
|