En  Fa
درحال مشاهده: سوال و جواب  > زبان های برنامه سازی  > نکات Delphi  > تبدیل عدد به حروف به زبان فارسی
 
 

دسته بندی مقالات

 

 

دسته بندی سوالات

 



 

تبدیل عدد به حروف به زبان فارسی

   

تبدیل عدد به حروف به زبان فارسی

توضیح

با استفاده از این تابع که به زبان دلفی است می توانید اعداد را به حروف فارسی تبدیل نمایید. این کد اعداد تا سقف میلیارد را نیز پشتیبانی می کند.

کد دلفی

function Number2Str(Nm: string): string;
const
  Main: array[1..3,0..9]of string = (('', 'يكصد و', 'دويست و', 'سيصد و', 'چهارصد و', 'پانصد و', 'ششصد و', 'هفتصد و', 'هشتصد و', 'نهصد و'),
                                     ('', '', 'بيست و', 'سي و', 'چهل و', 'پنجاه و', 'شصت و', 'هفتاد و', 'هشتاد و', 'نود و'),
                                     ('', 'يك', 'دوو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'));
  NPos: array[1..4]of string = ('ميليارد و', 'ميليون و', 'هزار و', '');
  _10_19: array[10..19]of string = ('ده', 'يازده', 'دوازده', 'سيزده', 'چهارده', 'پانزده', 'شانزده', 'هفده', 'هجده', 'نوزده');
var
  TMP2, TMP: string;
  Cntr2, Cntr: Integer;
begin
  case Length(Nm) mod 3 of
    1: TMP := '00';
    2: TMP := '0';
  end;
  Nm := TMP + Nm;
  TMP := '';
  if Length(Nm) <=3 then begin
    for Cntr := 1 to 3 do
      if (Cntr = 2) and (Nm[Cntr] = '1') then begin
        TMP := TMP + _10_19[StrToInt(Copy(Nm, 2, 2))] + ' ';
        Break;
      end else
            TMP := TMP + Main[Cntr, StrToInt(Nm[Cntr])] + ' ';
    TMP := Trim(TMP);
    Cntr := Length(TMP);
    if TMP <> '' then
      if TMP[Cntr] = 'و' then
        Delete(TMP, Cntr, 1);
    Result := TMP + ' ';
    Exit;
  end;
  Cntr2 := 0;
  for Cntr := (4 - (Length(Nm) div 3)) + 1 to 4 do begin
    TMP2 := Number2Str(Copy(Nm, (Cntr2 * 3) + 1, 3));
    if Trim(TMP2) <> '' then
      TMP := TMP + TMP2 + NPos[Cntr] + ' ';
    Inc(Cntr2);
  end;
  TMP := Trim(TMP);
  Cntr := Length(TMP);

  {----This command fix it----}
  If not (Nm[length(NM)]='2') then
    {--This command remove the و from end of the number that has دو! this is mistake--}
    if TMP <> '' then
      if TMP[Cntr] = 'و' then
        Delete(TMP, Cntr, 1);
  Result := TMP;
end;

ضمایم
NumberToStr.zip
حجم : 2.00 KB  دفعات دریافت : 59
Source codes  
جزئـیات تاپيک
      
نویسنده: Salar Khalilzadeh
تاریخ ارسال: 1387/04/22 10:00 PM
تعداد مشاهده: 1302
تعداد آرا: 5
امتیاز آرا:   از 3.60 امتیاز

رای شما به این مطلب:

bookmark this
 

هیچ نظری برای این مطلب ارسال نشده است.
زبان سایت:

Copyright © 2009 SoftProjects.org | About | Valid XHTML | CSS