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[] = { "", "¤¥û", "öøþóþõ", "¢¤‘þóþõ" };
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 = "–¨þø¢"; break;
case 3: str = "¢¬þ¨"; break;
case 4: str = "¢¬¤‘ú"; break;
case 5: str = "¢¬÷‘•"; break;
case 6: str = "¢¬ªª"; break;
case 7: str = "¢¬—êû"; break;
case 8: str = "¢¬—ªû"; break;
case 9: str = "¢¬ú÷"; break;
}
FString = str + (FString.IsEmpty() ? "" : "ø") + FString;
}
if (div[1] != 0)
if (div[1] == 1)
{
switch (div[0])
{
case 0: str = "ù¢"; break;
case 1: str = "ù¢¥‘þ"; break;
case 2: str = "ù¢¥ø¢"; break;
case 3: str = "ù¢¥þ¨"; break;
case 4: str = "ù¢¤‘ú"; break;
case 5: str = "ù¢¥÷‘•"; break;
case 6: str = "ù¢¥÷‘ª"; break;
case 7: str = "ù¢êû"; break;
case 8: str = "ù¢›û"; break;
case 9: str = "ù¢¥ø÷"; break;
}
FString = str + (FString.IsEmpty() ? "" : "ø") + FString;
}
else
{
switch (div[1])
{
case 1: str = "ù¢"; break;
case 2: str = "–¨þ""; break;
case 3: str = "ü¨"; break;
case 4: str = "ñú"; break;
case 5: str = "ù‘›÷•"; break;
case 6: str = "–¬ª"; break;
case 7: str = "¢‘—êû"; break;
case 8: str = "¢‘—ªû"; break;
case 9: str = "¢ø÷"; break;
}
FString = str + (FString.IsEmpty() ? "" : "ø") + FString;
switch (div[0])
{
case 1: str = "íþ"; break;
case 2: str = "ø¢"; break;
case 3: str = "ù¨"; break;
case 4: str = "¤‘ú"; break;
case 5: str = "š÷•"; break;
case 6: str = "©ª"; break;
case 7: str = "–êû"; break;
case 8: str = "–ªû"; break;
case 9: str = "ù÷"; break;
default: str = "";
}
FString = str + (str.IsEmpty() ? "" : "ø") + FString;
}
else
if (div[0] != 0)
{
switch (div[0])
{
case 1: str = "íþ"; break;
case 2: str = "ø¢"; break;
case 3: str = "ù¨"; break;
case 4: str = "¤‘ú"; break;
case 5: str = "š÷•"; break;
case 6: str = "©ª"; break;
case 7: str = "–êû"; break;
case 8: str = "–ªû"; break;
case 9: str = "ù÷"; break;
}
FString = str + (FString.IsEmpty() ? "" : "ø") + FString;
}
FString = pwr[pow-1] + FString;
}
zarzari
شنبه 19 آبان 1386, 16:30 عصر
سلام .
ممکن vb اون رو برای من بفرستید؟
من نیاز فوری دارم .
ممنون از لطفتون.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.