تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود لحساب عدد تكرار الاحرف
#1
سلام عليكم
محتاجه كود بلغه vb.net 
لدي textbox1 يحتوي على aaabcc
اريد اني يخرج في textbox2 على شكل 3ab2c
بمعنى يحسب عدد  الحروف  الحروف المتكرره ويطبع عدد التكرار لكل حرف
الرد }}}
تم الشكر بواسطة:
#2
PHP كود :
       Dim currentString As String "aaaabbccc"

 
       Dim dic As Dictionary(Of CharInteger) = currentString.GroupBy(Function(cc).OrderBy(Function(cc.Key).ToDictionary(Function(gg.Key, Function(gg.Count())
 
       Dim result As String ""
 
       For Each kvp In dic
            result 
+= String.Format("{0}{1}"kvp.Valuekvp.Key)
 
       Next 
lلأفضل تحويل الكود أعلاه الي دالة بهذا الشكل و تمرر لها String المراد حساب تكرار الحروف له

PHP كود :
 Private Function CountChars(currentString As String) As String
        Dim result 
As String ""
 
       Dim dic As Dictionary(Of CharInteger) = currentString.GroupBy(Function(cc).OrderBy(Function(cc.Key).ToDictionary(Function(gg.Key, Function(gg.Count())
 
       For Each kvp As KeyValuePair(Of CharIntegerIn dic
            result 
+= String.Format("{0}{1}"kvp.Valuekvp.Key)
 
       Next
        Return result
    End 
Function 
الكود التالي يوضح كيفية استخدام الدالة

PHP كود :
Dim counted As String CountChars("aaaaabbbbbbbbbbb"
الرد }}}
تم الشكر بواسطة:
#3
(07-11-16, 08:08 PM)silverlight كتب :
PHP كود :
       Dim currentString As String "aaaabbccc"

 
       Dim dic As Dictionary(Of CharInteger) = currentString.GroupBy(Function(cc).OrderBy(Function(cc.Key).ToDictionary(Function(gg.Key, Function(gg.Count())
 
       Dim result As String ""
 
       For Each kvp In dic
            result 
+= String.Format("{0}{1}"kvp.Valuekvp.Key)
 
       Next 
lلأفضل تحويل الكود أعلاه الي دالة بهذا الشكل و تمرر لها String المراد حساب تكرار الحروف له

PHP كود :
 Private Function CountChars(currentString As String) As String
        Dim result 
As String ""
 
       Dim dic As Dictionary(Of CharInteger) = currentString.GroupBy(Function(cc).OrderBy(Function(cc.Key).ToDictionary(Function(gg.Key, Function(gg.Count())
 
       For Each kvp As KeyValuePair(Of CharIntegerIn dic
            result 
+= String.Format("{0}{1}"kvp.Valuekvp.Key)
 
       Next
        Return result
    End 
Function 
الكود التالي يوضح كيفية استخدام الدالة

PHP كود :
Dim counted As String CountChars("aaaaabbbbbbbbbbb"

جربته للكود مانفذ ممكن كود ابسط من هذا
الرد }}}
تم الشكر بواسطة:
#4
جربي هذا الكود ويحتوي على شرح
كود :
   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

       ' الاحتفاظ بالنص الأصلي
       Dim txt As String = Me.TextBox1.Text

       ' تحويل النص إلى مصفوفة أحرف مع حذف المكرر
       Dim charArray As Char() = txt.ToCharArray.Distinct.ToArray

       ' لعمل النص الناتج
       Dim res As String = ""

       ' المرور على أحرف المصفوفة
       For Each c As Char In charArray

           ' معرفة تكرار الحرف في النص الأصلي
           Dim cnt As Integer = txt.Count(Function(x As Char) x.Equals(c))

           ' إضافة إلى النص الناتج
           res &= cnt & c

       Next

       ' عرض النص الناتج
       Me.TextBox2.Text = res

   End Sub

ToCharArray تحول النص إلى مصفوفة أحرف استعدادا لتطبيق Distinct
Distinct تتجاهل التكرار (وDistinct هي من Linq)
ToArray تحويل ناتج Distinct الى مصفوفة مرة أخرى
Count تعداد وهي تقوم بالعد
Function ضرورية لعمل Count (وCount هي من Linq)
Equals معناها "=" (وEquals هي من Linq) ويمكن بدلا من Equals استخدام الطريقة التقليدية مثل
كود :
x = c
بدلا من
x.Equals(c)
الرد }}}
تم الشكر بواسطة:
#5
أعتذر يا إبنتي فانا دوما أنسي ان بعض الناس ليس لديهم نسخة حديثة من الدوت نت
عموما جميع الأكواد السابقة تعمل جيدا
و لكن في الكود التالي ستجدين دالة سوف تعمل علي جميع النسخ من الدوت نت

PHP كود :
  Private Function CountRepeatedChars(As String) As String

        Dim result 
As String ""

 
       Dim values As ArrayList = New ArrayList()
 
       For i 0 To s.Length 1
            Dim current 
As String s(i)
 
           If Not values.Contains(currentThen
                values
.Add(current)
 
           End If
 
       Next

        Dim keys 
As ArrayList = New ArrayList()
 
       For Each c As Char In values
            Dim k 
As Integer 0
            For Each ch 
As Char In s
                If c 
ch Then
                    k 
+= 1
                End 
If
 
           Next
            keys
.Add(k)
 
       Next

        For j 
As Integer 0 To keys.Count 1
            result 
+= String.Format("{0}{1}"keys(j), values(j))
 
       Next

        Return result
    End 
Function
End Class 

طريقة استخدام الدالة

PHP كود :
  Dim repeatedString As String CountRepeatedChars("aaaabbbbbbcccccc"
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سبب تكرار رسالة التنبيه مصمم هاوي 4 436 03-05-25, 02:05 PM
آخر رد: مصمم هاوي
  مساعدة في كود عدم تكرار استدعاء نفس السؤال من المصفوفة fireswored1 5 556 10-02-25, 05:11 PM
آخر رد: fireswored1
  هل يوجد كود لعدم تكرار نفس البيانات ببعض الحقول F.H.M 19 916 15-09-24, 06:14 AM
آخر رد: F.H.M
  تكرار الصفوف في الكريستل ريبورت makky 2 2,469 26-08-24, 01:20 PM
آخر رد: تركي الحلواني
  مشكلة تكرار الصفوف أثناء عرض التقرير Adel27213 1 268 26-08-24, 01:08 PM
آخر رد: تركي الحلواني
  مشكلة تكرار الصفوف أثناء عرض التقرير Adel27213 0 290 26-08-24, 05:18 AM
آخر رد: Adel27213
  منع تكرار العناصر في داتا جيرد في حال وجود نفس العنصر والسعر سويا moh61 3 665 19-05-24, 02:40 PM
آخر رد: moh61
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 1,073 05-02-24, 04:39 PM
آخر رد: صالح عبدالله
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 659 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  عدم تكرار الاسم yossefsaad370 0 473 02-11-23, 12:28 PM
آخر رد: yossefsaad370

التنقل السريع :


يقوم بقرائة الموضوع: