![]() |
|
طريقة تحويل الأرقام إلى حروف - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : طريقة تحويل الأرقام إلى حروف (/showthread.php?tid=47472) |
طريقة تحويل الأرقام إلى حروف - Adel27213 - 12-11-23 السلام عليكم لمن يقدر يساعدني في الاتي: عندي textbox1 يتم ادخال أرقام مثل 7500 اريد اجعل قيمة textbox2 تساوي الأرقام بالحروف = سبعة الالف وخمسمائة ريال فقط حيث أن الكود داخل حدث changed لل textbox1 الله يعطيكم العافية وشكراً RE: طريقة تحويل الأرقام إلى حروف - Taha Okla - 12-11-23 و عليكم السلام و رحمة الله و بركاته راجع الكود في هذه المشاركة RE: طريقة تحويل الأرقام إلى حروف - sniper2030 - 18-11-23 ذلك في حدث TextChanged لـ TextBox1: vb Copy code Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged ' احصل على القيمة المدخلة في TextBox1 Dim inputValue As String = TextBox1.Text.Trim() ' تحويل الرقم إلى كلمة Dim wordValue As String = ConvertNumberToWords(inputValue) ' عرض الناتج في TextBox2 TextBox2.Text = wordValue End Sub Private Function ConvertNumberToWords(number As String) As String ' تحويل الرقم إلى كلمة ' يمكنك استخدام أي خوارزمية تحويل رقم إلى كلمة تفضل بها ' يمكنك البحث عن خوارزميات متوفرة على الإنترنت أو كتابة خاصة بك ' هنا نستخدم خوارزمية بسيطة لأغراض التوضيح Dim units() As String = {"", "واحد", "اثنان", "ثلاثة", "أربعة", "خمسة", "ستة", "سبعة", "ثمانية", "تسعة"} Dim teens() As String = {"عشرة", "إحدى عشر", "اثنا عشر", "ثلاثة عشر", "أربعة عشر", "خمسة عشر", "ستة عشر", "سبعة عشر", "ثمانية عشر", "تسعة عشر"} Dim tens() As String = {"", "عشرون", "ثلاثون", "أربعون", "خمسون", "ستون", "سبعون", "ثمانون", "تسعون"} Dim hundreds() As String = {"", "مئة", "مئتان", "ثلاثمئة", "أربعمئة", "خمسمئة", "ستمئة", "سبعمئة", "ثمانمئة", "تسعمئة"} ' إزالة الأصفار الزائدة من الرقم number = number.TrimStart("0"c) ' التحقق من أن الرقم ليس فارغًا If String.IsNullOrEmpty(number) Then Return "صفر" End If ' التحقق من صحة الرقم Dim numericValue As Integer If Not Integer.TryParse(number, numericValue) Then Return "خطأ في الرقم" End If ' حالة الرقم صفر If numericValue = 0 Then Return "صفر" End If ' تحويل الرقم إلى كلمة Dim words As New StringBuilder() ' تحويل الجزء الثلاثي إلى كلمة Dim triplets() As Integer = {0, 0, 0} Dim tripletCounter As Integer = 0 Do While numericValue > 0 triplets(tripletCounter) = numericValue Mod 1000 numericValue \= 1000 tripletCounter += 1 Loop For i As Integer = tripletCounter - 1 To 0 Step -1 Dim triplet As Integer = triplets(i) If triplet > 0 Then If words.Length > 0 Then words.Append(" و ") End If If triplet >= 100 Then words.Append(hundreds(triplet \ 100)).Append(" ") triplet \= 100 End If If triplet >= 10 AndAlso triplet <= 19 Then words.Append(teens(triplet - 10)) Else words.Append(tens(triplet \ 10)).Append(" ") triplet \= 10 If triplet > 0 Then words.Append(units(triplet)) End If End If If i > 0 Then words.Append(" ").Append("ألف"c) End If End If Next Return words.ToString().Trim() End Function |