View Full Version : نوشتن عدد به حروف
  
mohammad bayervand
پنج شنبه 26 آبان 1384, 16:13 عصر
با سلام  :لبخند: 
سر یک نکته گیر کردم .
نحوه تبدیل مبلغ چک به حروف با استفاده از تابع می باشد یا احتیاج به ساختار حلقه میباشد ؟
لطفا کمی توضیح دهید .
آیا source آن را دارید.
M.kavyani
جمعه 27 آبان 1384, 00:30 صبح
من سورسشو باVB.NET را دارم می خوای بدم
maryam safarzadeh
جمعه 27 آبان 1384, 19:05 عصر
برای تبدیل عدد به حروف باید آن را + 48 کنی
M.kavyani
شنبه 28 آبان 1384, 01:01 صبح
برای تبدیل عدد به حروف باید آن را + 48 کنی
دوست عزیز این کار باعث میشه که عدد به حرف الفبا تبدیل شدو مثلا" یک بشه Aولی ایشون میخواد وقتی مینویسه 101 جواب نوشته ای باشه به صورت "صد و یک" 
 :چشمک:
mzjahromi
شنبه 28 آبان 1384, 10:53 صبح
من با دلفی دارم می تونی تبدیلش کنی؟
mohammad bayervand
شنبه 28 آبان 1384, 19:36 عصر
دست شما درد نکند اگر لطف کنید و آن را برایم بفرستید خیلی ممنون میشوم . :بوس:
mzjahromi
شنبه 28 آبان 1384, 20: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, 18: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, 17:30 عصر
سلام .
ممکن vb اون رو برای من بفرستید؟
من نیاز فوری دارم .
ممنون از لطفتون.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.