JASEM128
یک شنبه 06 فروردین 1396, 15:26 عصر
با سلام و خسته نباشید
از دوستان خواهش میکنم مشکل این کد رو بهم بگن الان 4 روزه گرفتارم
اجرکم من الله
فایل ضمیمه شده
unit HoroofUnit;
interface
function Add2Harf(i:int64):string;
implementation
function Add2Harf(i:int64):string;
//function AliHgethoroof(i:Extended):string;
const v=' و ';
var
ok:boolean;
j:Int64;
{___________________________________}
function yekan(y:byte):string;
begin
case y of
0:result:='';
1:result:='One';
2:result:='Two';
3:result:='Three';
4:result:='Four';
5:result:='Five';
6:result:='Six';
7:result:='Seven';
8:result:='Eight';
9:result:='Nine';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dahgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='Ten';
2:result:='Twenty';
3:result:='Thirty';
4:result:='Fourty';
5:result:='Fifty';
6:result:='Sixty';
7:result:='Seventy';
8:result:='Eighty';
9:result:='Ninety';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function sadgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='One Hundred';
2:result:='Two Hundred';
3:result:='Three Hundred';
4:result:='Four Hundred';
5:result:='Five Hundred';
6:result:='Six Hundred';
7:result:='Seven Hundred';
8:result:='Eight Hundred';
9:result:='Nine Hundred';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dah(y:byte):string;
begin
case y of
0:result:='';
10:result:='Ten';
11:result:='Eleven';
12:result:='Twelve';
13:result:='Thirteen';
14:result:='Fourteen';
15:result:='Fifteen';
16:result:='Sixteen';
17:result:='Seventeen';
18:result:='Eighteen';
19:result:='Nineteen';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function seragham(si:smallint):string;
begin
result:='';
result:=sadgan(si div 100);
if ok then result:=result+v;
if((si mod 100)div 10)<>1 then begin
result:=result+dahgan((si mod 100)div 10);
if ok then result:=result+v;
result:=result+yekan(si mod 10);
if not ok then result:=copy(result,1,length(result)-3);
End
else begin
result:=result+dah(si mod 100);
end;
if result='' then ok:=false else ok:=true;
end;
{___________________________________}
const
I_tr=' Trillion';
I_mr=' Milliard';
I_ml=' Million';
I_hz=' Thousand';
FloatPoint: array [1..7] of String = (' ???',' ???',' ?????',' ?? ?????',' ?? ?????',' ????????',' ?? ????????');
var
jj: String;
begin
ok:=false;
if pos('.',FloatToStr(i)) <> 0 then
jj := copy( FloatToStr(i),1,pos('.',FloatToStr(i))-1)
else jj := FloatToStr(i);
j := StrToInt64Def(jj,0);
result:=seragham(j div 1000000000000);
if ok then result:=result+I_tr+v;
result:=result+seragham((j mod 1000000000000)div 1000000000);
if ok then result:=result+I_mr+v;
result:=result+seragham((j mod 1000000000)div 1000000);
if ok then result:=result+I_ml+v;
result:=result+seragham((j mod 1000000)div 1000);
if ok then result:=result+I_hz+v;
result:=result+seragham(j mod 1000);
if not ok then result:=copy(result,1,length(result)-3);
if pos('.',FloatToStr(i)) <> 0 then begin
Result := Result + ' مميز ';
jj := copy( FloatToStr(i),pos('.',FloatToStr(i))+1,100);
j := StrToInt64Def(jj,0);
result:=result + seragham(j div 1000000000000);
if ok then result:=result+I_tr+v;
result:=result+seragham((j mod 1000000000000)div 1000000000);
if ok then result:=result+I_mr+v;
result:=result+seragham((j mod 1000000000)div 1000000);
if ok then result:=result+I_ml+v;
result:=result+seragham((j mod 1000000)div 1000);
if ok then result:=result+I_hz+v;
result:=result+seragham(j mod 1000);
if not ok then result:=copy(result,1,length(result);-3);
Result := Result + FloatPoint[length(JJ)];
end;
if i=0 then result:='Ziro';
end;
end.
از دوستان خواهش میکنم مشکل این کد رو بهم بگن الان 4 روزه گرفتارم
اجرکم من الله
فایل ضمیمه شده
unit HoroofUnit;
interface
function Add2Harf(i:int64):string;
implementation
function Add2Harf(i:int64):string;
//function AliHgethoroof(i:Extended):string;
const v=' و ';
var
ok:boolean;
j:Int64;
{___________________________________}
function yekan(y:byte):string;
begin
case y of
0:result:='';
1:result:='One';
2:result:='Two';
3:result:='Three';
4:result:='Four';
5:result:='Five';
6:result:='Six';
7:result:='Seven';
8:result:='Eight';
9:result:='Nine';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dahgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='Ten';
2:result:='Twenty';
3:result:='Thirty';
4:result:='Fourty';
5:result:='Fifty';
6:result:='Sixty';
7:result:='Seventy';
8:result:='Eighty';
9:result:='Ninety';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function sadgan(y:byte):string;
begin
case y of
0:result:='';
1:result:='One Hundred';
2:result:='Two Hundred';
3:result:='Three Hundred';
4:result:='Four Hundred';
5:result:='Five Hundred';
6:result:='Six Hundred';
7:result:='Seven Hundred';
8:result:='Eight Hundred';
9:result:='Nine Hundred';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function dah(y:byte):string;
begin
case y of
0:result:='';
10:result:='Ten';
11:result:='Eleven';
12:result:='Twelve';
13:result:='Thirteen';
14:result:='Fourteen';
15:result:='Fifteen';
16:result:='Sixteen';
17:result:='Seventeen';
18:result:='Eighteen';
19:result:='Nineteen';
enD;
if result=''then ok:=false else ok:=true;
end;
{___________________________________}
function seragham(si:smallint):string;
begin
result:='';
result:=sadgan(si div 100);
if ok then result:=result+v;
if((si mod 100)div 10)<>1 then begin
result:=result+dahgan((si mod 100)div 10);
if ok then result:=result+v;
result:=result+yekan(si mod 10);
if not ok then result:=copy(result,1,length(result)-3);
End
else begin
result:=result+dah(si mod 100);
end;
if result='' then ok:=false else ok:=true;
end;
{___________________________________}
const
I_tr=' Trillion';
I_mr=' Milliard';
I_ml=' Million';
I_hz=' Thousand';
FloatPoint: array [1..7] of String = (' ???',' ???',' ?????',' ?? ?????',' ?? ?????',' ????????',' ?? ????????');
var
jj: String;
begin
ok:=false;
if pos('.',FloatToStr(i)) <> 0 then
jj := copy( FloatToStr(i),1,pos('.',FloatToStr(i))-1)
else jj := FloatToStr(i);
j := StrToInt64Def(jj,0);
result:=seragham(j div 1000000000000);
if ok then result:=result+I_tr+v;
result:=result+seragham((j mod 1000000000000)div 1000000000);
if ok then result:=result+I_mr+v;
result:=result+seragham((j mod 1000000000)div 1000000);
if ok then result:=result+I_ml+v;
result:=result+seragham((j mod 1000000)div 1000);
if ok then result:=result+I_hz+v;
result:=result+seragham(j mod 1000);
if not ok then result:=copy(result,1,length(result)-3);
if pos('.',FloatToStr(i)) <> 0 then begin
Result := Result + ' مميز ';
jj := copy( FloatToStr(i),pos('.',FloatToStr(i))+1,100);
j := StrToInt64Def(jj,0);
result:=result + seragham(j div 1000000000000);
if ok then result:=result+I_tr+v;
result:=result+seragham((j mod 1000000000000)div 1000000000);
if ok then result:=result+I_mr+v;
result:=result+seragham((j mod 1000000000)div 1000000);
if ok then result:=result+I_ml+v;
result:=result+seragham((j mod 1000000)div 1000);
if ok then result:=result+I_hz+v;
result:=result+seragham(j mod 1000);
if not ok then result:=copy(result,1,length(result);-3);
Result := Result + FloatPoint[length(JJ)];
end;
if i=0 then result:='Ziro';
end;
end.