إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

هل توجد fuction تحول الارقام الى لغة معينة


4 رد (ردود) على هذا الموضوع

#1 sudan_home

sudan_home

    عضو

  • الأعضــاء
  • 28 مشاركة

تاريخ المشاركة 25 October 2004 - 01:11 PM

هل توجد fuction تحول الارقام الى لغة معينة
مثلا اذا اردنا كتابة 123
على الشكل
مائه ثلاث وعشرون
اذا وجد ارجو موافتى بها
فقد صممت دالة خاصة فى oracle
خاصة بلغه العربيه
monty

#2 ibrahimdh

ibrahimdh

    عضو

  • الأعضــاء
  • 12 مشاركة

تاريخ المشاركة 25 October 2004 - 07:11 PM

يجب عليك يأخي كتابة اجراء على الداتا بيس وتعمل له منادة وهذا مثل بسيط على ذلك :
PROCEDURE TFKEET (Value_In IN Number,Type_In IN Number,
Text_Out OUT Varchar2) IS
----------------------------------------------------------------------------
-- Value In = { Number(11.2)}: القيمة المطلوب تفقيطها ، ويجب ان تكون بالشكل --
-- Type_In = مميز التفقيط ، ويساوى (1) للتعامل مع الريال والهللة ، ويساوى (2) للتعامل مع الأسهم --
-- ويساوى (3) للتعامل مع الطن والكيلو --
-- Text_out = المبلغ مفقط - ويصل طول العبارة الى 100 حرف --
----------------------------------------------------------------------------
Begin
Declare Return_Text Varchar2(100) :=null;
Send_Number CHAR(1);
Type1 VARCHAR2(10);
Type2 VARCHAR2(10);
Type3 VARCHAR2(10);
Type4 VARCHAR2(10);
Type_F VARCHAR2(10);
TEXT1 VARCHAR2(30);
TEXT2 VARCHAR2(30);
TEXT3 VARCHAR2(30);
X Number;
Y Number;
X1 Number;
I Number:=1;
Reserve2 Char(1);
Out_Text Varchar2(100);
T_Text Varchar2(100);
In_Number Number(12,3) :=Value_In;
Integer_Number Number(9) :=Floor(In_number);
Fraction_Number Number(3,3) :=In_number - Integer_Number;
Frc_Number Number(3) :=Fraction_number * 1000;
Begin
-----------------------------------------------------------------------------
If Type_In = 1 Then
Type1 := 'ريال'; Type2 := 'ريالان'; Type3 := 'ريالآ';
Type4 := 'ريالات'; Type_F := 'هللة';
Frc_Number := Frc_number /10;
ElsIf Type_In = 2 Then
Type1 := 'سهم'; Type2 := 'سهمان'; Type3 := 'سهمآ';
Type4 := 'أسهم'; Type_F := Null;
Frc_Number := Frc_number /10;
Else
Type1 := 'طن'; Type2 := 'طنان'; Type3 := 'طنآآ';
Type4 := 'أطنان'; Type_F := 'كيلو';
End If;
-----------------------------------------------------------------------------
For X IN 1..3 Loop
Reserve2 := null;
For Y In 1..3 Loop
Return_text:=null;
Send_Number:=
substr(substr(lpad(to_char(Integer_Number),9,'0'),I,3),4-y,1);
Begin
Select Decode(Send_Number,1,'واحد',2,'إثنين',3,'ثلاث',4,'أربع'
,5,'خمس',6,'ست',7,'سبع',8,'ثمان',9,'تسع',NULL)
Into Return_Text
From dual;
End;
If Return_Text is not null
Then If y = 1
Then If send_number not in (1,2)
Then If send_number in (8)
Then Text1:=Return_Text||'ية';
Else Text1:=Return_Text||'ة';
End If;
Else Text1:=Return_Text;
End If;
reserve2:=send_number;
Elsif y = 2
Then If send_number='1'
Then If Reserve2 is null
Then Text2:='عشرة';
Elsif Reserve2=1
Then Text2:='إحدى عشر'; Text1:= null;
Elsif Reserve2=2
Then Text2:='إثنا عشر'; Text1:=null;
Else Text2:=text1||' عشر'; text1:=null;
End If;
Elsif send_number='2'
Then If reserve2 is null then text2:='عشرون';
elsif reserve2=1
then text2:='واحد وعشرين'; text1:= null;
elsif reserve2=2 then
text2:='إثنين وعشرين'; text1:=null;
else
text2:=text1||' وعشرون'; text1:=null;
end if;
else
if text1 is not null then
text2:=text1||' و'||RETURN_TEXT||'ون';
text1:=null;
else
text2:=RETURN_TEXT||'ون';
end if;
end if;
elsif y = 3 then
if send_number='1'then
text3:='مائة';
elsif send_number='2' then
text3:='مائتان';
else
text3:= return_text||'مائة';
end if;
if text2 is not null or text1 is not null then
text3:=text3||' و';
end if;
end if;
end if;
end loop;
-----------------------------------------------------------------------------
text3:=(text3||text2||text1);
if text3 is not null then
if x = 1 then
if text3 = 'واحد' then
text3:=' مليون ';
elsif text3='اثنين' then
text3:=' مليونان ';
elsif text3 in ('ثلاثة','اربعة','خمسة','ستة','سبعة','ثمانية','تسعة','عشرة') then
text3:=text3||' ملايين';
else
text3:= text3||' مليون ';
end if;
elsif x = 2 then
if text3 = 'واحد' then
text3:=' الف ';
elsif text3='إثنين' then
text3:=' الفان ';
elsif text3 in ('ثلاثة','أربعة','خمسة','ستة','سبعة','ثمانية','تسعة','عشرة') then
text3:=text3||' آلاف';
else
text3:= text3||' الف ';
end if;
end if;
out_text:=text3;
end if;
if t_text is not null and out_text is not null then
t_text:=t_text||' و'||out_text;
else
t_text:=t_text||out_text;
end if;
I:=I+3;
text1:=null;
text2:=null;
text3:=null;
out_text:=null;
end loop;
-----------------------------------------------------------------------------
if t_text is not null then
t_text:=t_text||' '||Type1;
end if;
---------------------------------------------------------------------------
if t_text is not null then
if Frc_Number > 0 then
t_text:=(t_text||' و'||To_Char(Frc_Number))||' '||Type_F;
end if;
else
if Frc_Number > 0 then t_text:=To_Char(Frc_Number)||' '||Type_F;
end if;
end if;
---------------------------------------------------------------------------
Text_Out :=' فقط '||t_text||' لاغير';
end;
end;
وهذا ملف مرفق بالتفقيط

ملفات مرفقة

  • ملف مرفق  _______.txt   6.42كيلو   73 عدد مرات التحميل


#3 abzr

abzr

    عضو

  • الأعضــاء
  • 38 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 October 2004 - 12:39 PM

شكرا الاخ ابراهيم...
وايضا الشكر موصول للاخ sudan_home

img_girls-ly1382090303_617.gif


#4 Soly

Soly

    عضو

  • الأعضــاء
  • 39 مشاركة
  • الاسم الأول:محمد
  • اسم العائلة:الشريف
  • البـلـد: Country Flag

تاريخ المشاركة 01 November 2004 - 08:19 AM

طريقة اخرى ارجو ان تكون مفيدة

ملفات مرفقة

  • ملف مرفق  Tafneet.fmb   48كيلو   28 عدد مرات التحميل

بسم الله الرحمن الرحيم الرحمن* علم القرءان* خلق الانسان* علمه البيان*صدق الله العظيم

شكوت الى وكيع سوء حفظى *** فأرشدنى الى ترك المعاصى
وقال لى ان العلم نور *** ونور الله لا يعطى لعاص

#5 waleed_ksa

waleed_ksa

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 03 November 2004 - 01:58 PM

جزاك الله خيرا