PDA

View Full Version : نوشتن عدد به حروف



mohammad bayervand
پنج شنبه 26 آبان 1384, 15:13 عصر
با سلام :لبخند:
سر یک نکته گیر کردم .
نحوه تبدیل مبلغ چک به حروف با استفاده از تابع می باشد یا احتیاج به ساختار حلقه میباشد ؟
لطفا کمی توضیح دهید .
آیا source آن را دارید.

M.kavyani
پنج شنبه 26 آبان 1384, 23:30 عصر
من سورسشو باVB.NET را دارم می خوای بدم

maryam safarzadeh
جمعه 27 آبان 1384, 18:05 عصر
برای تبدیل عدد به حروف باید آن را + 48 کنی

M.kavyani
شنبه 28 آبان 1384, 00:01 صبح
برای تبدیل عدد به حروف باید آن را + 48 کنی
دوست عزیز این کار باعث میشه که عدد به حرف الفبا تبدیل شدو مثلا" یک بشه Aولی ایشون میخواد وقتی مینویسه 101 جواب نوشته ای باشه به صورت "صد و یک"
:چشمک:

mzjahromi
شنبه 28 آبان 1384, 09:53 صبح
من با دلفی دارم می تونی تبدیلش کنی؟

mohammad bayervand
شنبه 28 آبان 1384, 18:36 عصر
دست شما درد نکند اگر لطف کنید و آن را برایم بفرستید خیلی ممنون میشوم . :بوس:

mzjahromi
شنبه 28 آبان 1384, 19:16 عصر
Function TMB.Get1nd(i:integer):String;
Begin
case i of
0: Get1nd:=' ÕÝÑ '; {zero}
1: Get1nd:=' íßþ '; {one}
2: Get1nd:=' Ïæ '; {two}
3: Get1nd:=' Óå '; {three}
4: Get1nd:=' åÇѝ '; {four}
5: Get1nd:=' äÌ '; {five}
6: Get1nd:=' ÔÔ '; {}
7: Get1nd:=' åÝÊ '; {}
8: Get1nd:=' åÔÊ '; {}
9: Get1nd:=' äå '; {}
10: Get1nd:=' Ïå '; {}
11: Get1nd:=' íÇÒÏåþ '; {}
12: Get1nd:=' ÏæÇÒÏå '; {}
13: Get1nd:=' ÓíÒÏå '; {}
14: Get1nd:=' åÇÑÏå '; {}
15: Get1nd:=' ÇäÒÏå '; {}
16: Get1nd:=' ÔÇäÒÏå '; {}
17: Get1nd:=' åÝÏå '; {}
18: Get1nd:=' åÌÏå '; {}
19: Get1nd:=' äæÒÏå '; {}
End;
End;
Function TMB.Get2nd(i:Integer):String;
Begin
case i of
2: Get2nd:=' ÈíÓÊ '; {}
3: Get2nd:=' Óí '; {}
4: Get2nd:=' åᝠ'; {}
5: Get2nd:=' äÌÇå '; {}
6: Get2nd:=' ÔÕÊ '; {}
7: Get2nd:=' åÝÊÇÏ '; {}
8: Get2nd:=' åÔÊÇÏ '; {}
9: Get2nd:=' äæÏ '; {}
End;
End;
Function TMB.Get3nd(i:Integer):String;
Begin
case i of
1: Get3nd:=' íßÕÏþ '; {}
2: Get3nd:=' ÏæíÓÊ '; {}
3: Get3nd:=' ÓíÕÏ '; {}
4: Get3nd:=' åÇÑÕϝ '; {}
5: Get3nd:=' ÇäÕÏ '; {}
6: Get3nd:=' ÔÔÕÏ '; {}
7: Get3nd:=' åÝÊÕÏ '; {}
8: Get3nd:=' åÔÊÕÏ '; {}
9: Get3nd:=' äåÕÏ '; {}
End;
End;
Function TMB.GetTree(i:Integer):String;
var
a:String;
Begin
a:='';
if (i mod 100)>=20 then
Begin
if (i mod 10)>0 then
a:=Get1nd(i Mod 10)+a;
if (i mod 100 Div 10)>0 then
if length(a)>0 then
a:=Get2nd(i mod 100 Div 10)+'æ'+a
Else
a:=Get2nd(i mod 100 Div 10)+a;
End
Else if (i mod 100) >0 then
a:=Get1nd(i Mod 100)+a;
if (i div 100)>0 then
if length(a)>0 then
a:=Get3nd(i Div 100)+'æ'+a
Else
a:=Get3nd(i Div 100)+a;
if i=0 then
a:=Get1nd(0);
GetTree:=a;

End;
Function TMB.GetNum(Num:LongInt):String;
var
a:String;
i,mod1:Integer;
Begin
{ GetNum:=GetTree(Num);}
a:='';
i:=0;
repeat
mod1:=num mod 1000;
num:=num div 1000;
if (mod1>0) and (Length(a)>0) then
a:=' æ '+a;
if (i=0)And(mod1>0) then
a:=GetTree(Mod1)+a
Else if (i=1) and (mod1>0) then
a:=GetTree(Mod1)+ 'åÒÇÑ'+a {Towsand}
Else if (i=2) and (mod1>0) then
a:=GetTree(Mod1)+ 'ãíáíæä'+a {Milion}
Else if (i=3) and (mod1>0) then
a:=GetTree(Mod1)+ 'ãíáíÇÑÏ'+a; {Miliard}
i:=i+1;
Until Num=0;
GetNum:=a+' '+Vahed;
End;

sasan_vm
یک شنبه 29 آبان 1384, 17:22 عصر
/////////////////////////////////////////////////////

//

// Number.h

//

/////////////////////////////////////////////////////



#ifndef __NUMBER_H___

#define __NUMBER_H___

enum NumberError { INVALIDNUM, LONGNUM, NONE };

class TNumber : public TObject

{

public:

TNumber();

__fastcall ~TNumber();

private:

AnsiString FNumber;

AnsiString FString;

NumberError FError;

void __fastcall Convert();

void SelectStr(AnsiString num, int pow);

void __fastcall SetNumber(AnsiString value);

AnsiString __fastcall GetString();

NumberError __fastcall GetError();

bool __fastcall Check();

__published:

__property AnsiString Number = { write=SetNumber };

__property AnsiString String = { read=GetString };

__property NumberError Error = { read=GetError };

};

#endif __NUMBER_H___



/////////////////////////////////////////////////////

//

// Number.cpp

//

/////////////////////////////////////////////////////

#include <vcl.h>

#include "Number.h"

TNumber::TNumber() : TObject()

{

FNumber = "";

FString = "";

FError = NONE;

}

__fastcall TNumber::~TNumber()

{

}

void __fastcall TNumber::SetNumber(AnsiString value)

{

if(FNumber != value) {

FNumber = value;

Convert();

}

}

AnsiString __fastcall TNumber::GetString()

{

return FString;

}

NumberError __fastcall TNumber::GetError()

{

return FError;

}

bool __fastcall TNumber::Check()

{

//TODO: Add your source code here

int len = FNumber.Length();

bool ret = true;

FError = NONE;

if (len > 12)

{

FError = LONGNUM;

ret = false;

}

else

for (int i = 1; i <= len; i++)

if (!isdigit(FNumber[i]))

{

FError = INVALIDNUM;

ret = false;

break;

}

return ret;

}

void __fastcall TNumber::Convert()

{

//TODO: Add your source code here

AnsiString num;

int len, div, mod, div2, div3;

if (!Check())

{

FString = "ERROR";

return;

}

FString = "";

len = FNumber.Length();

div = len / 3;

mod = len % 3;

div3 = div;

if (mod > 0)

{

num = FNumber.SubString(1,mod);

SelectStr(num, div3+1);

}

for (div2 = 0; div2 < div; div2++)

{

num = FNumber.SubString(mod+(div2*3)+1, 3);

SelectStr(num, div3--);

}

}

void TNumber::SelectStr(AnsiString num, int pow)

{

//TODO: Add your source code here

int i, nDiv, div[3];

char *pwr[] = { "", "¤¥û", "&ouml;&oslash;&thorn;&oacute;&thorn;&otilde;", "¢¤‘&thorn;&oacute;&thorn;&otilde;" };

AnsiString str;

nDiv = atoi(num.c_str());

if (nDiv == 0) return;

for (i = 0; i < 3; i++)

{

div[i] = nDiv % 10;

nDiv = nDiv / 10;

}

if (div[2] != 0)

{

switch (div[2])

{

case 1: str = "¢¬"; break;

case 2: str = "–¨&thorn;&oslash;¢"; break;

case 3: str = "¢¬&thorn;¨"; break;

case 4: str = "¢¬¤‘&uacute;"; break;

case 5: str = "¢¬÷‘•"; break;

case 6: str = "¢¬&ordf;&ordf;"; break;

case 7: str = "¢¬—êû"; break;

case 8: str = "¢¬—&ordf;û"; break;

case 9: str = "¢¬&uacute;÷"; break;

}

FString = str + (FString.IsEmpty() ? "" : "&oslash;") + FString;

}

if (div[1] != 0)

if (div[1] == 1)

{

switch (div[0])

{

case 0: str = "ù¢"; break;

case 1: str = "ù¢¥‘&thorn;"; break;

case 2: str = "ù¢¥&oslash;¢"; break;

case 3: str = "ù¢¥&thorn;¨"; break;

case 4: str = "ù¢¤‘&uacute;"; break;

case 5: str = "ù¢¥÷‘•"; break;

case 6: str = "ù¢¥÷‘&ordf;"; break;

case 7: str = "ù¢êû"; break;

case 8: str = "ù¢›û"; break;

case 9: str = "ù¢¥&oslash;÷"; break;

}

FString = str + (FString.IsEmpty() ? "" : "&oslash;") + FString;

}

else

{

switch (div[1])

{

case 1: str = "ù¢"; break;

case 2: str = "–¨&thorn;""; break;

case 3: str = "ü¨"; break;

case 4: str = "&ntilde;&uacute;"; break;

case 5: str = "ù‘›÷•"; break;

case 6: str = "–¬&ordf;"; break;

case 7: str = "¢‘—êû"; break;

case 8: str = "¢‘—&ordf;û"; break;

case 9: str = "¢&oslash;÷"; break;

}

FString = str + (FString.IsEmpty() ? "" : "&oslash;") + FString;

switch (div[0])

{

case 1: str = "&iacute;&thorn;"; break;

case 2: str = "&oslash;¢"; break;

case 3: str = "ù¨"; break;

case 4: str = "¤‘&uacute;"; break;

case 5: str = "š÷•"; break;

case 6: str = "©&ordf;"; break;

case 7: str = "–êû"; break;

case 8: str = "–&ordf;û"; break;

case 9: str = "ù÷"; break;

default: str = "";

}

FString = str + (str.IsEmpty() ? "" : "&oslash;") + FString;

}

else

if (div[0] != 0)

{

switch (div[0])

{

case 1: str = "&iacute;&thorn;"; break;

case 2: str = "&oslash;¢"; break;

case 3: str = "ù¨"; break;

case 4: str = "¤‘&uacute;"; break;

case 5: str = "š÷•"; break;

case 6: str = "©&ordf;"; break;

case 7: str = "–êû"; break;

case 8: str = "–&ordf;û"; break;

case 9: str = "ù÷"; break;

}

FString = str + (FString.IsEmpty() ? "" : "&oslash;") + FString;

}

FString = pwr[pow-1] + FString;

}

zarzari
شنبه 19 آبان 1386, 16:30 عصر
سلام .
ممکن vb اون رو برای من بفرستید؟
من نیاز فوری دارم .
ممنون از لطفتون.