تقييم الموضوع :
  • 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"
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 426 05-02-24, 04:39 PM
آخر رد: صالح عبدالله
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 255 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  عدم تكرار الاسم yossefsaad370 0 262 02-11-23, 12:28 PM
آخر رد: yossefsaad370
  كود لعدم تكرار الرقم في قاعدة البيانات yossefsaad370 1 340 28-10-23, 10:29 AM
آخر رد: atefkhalf2004
  تكرار الرقم القومى salah525 1 264 02-10-23, 10:14 PM
آخر رد: سالم العنزي
Rainbow مشكلة تكرار القيم في الكريستال ريبورت devpos 1 330 07-09-23, 11:48 PM
آخر رد: Asem2
  منع تكرار البيانات المدخلة على قاعدة البيانات الرائد 14 7,158 18-08-23, 08:10 PM
آخر رد: ahmed_king2023
  مساعدة في تكرار صفحات الطبع Reportview نيمو 0 397 20-06-23, 09:14 PM
آخر رد: نيمو
  تكرار البيانات من زر تعديل البيانات ( في البيانات المحفوظة ) خليل احمد المراني 8 973 26-05-23, 11:00 PM
آخر رد: خليل احمد المراني
  تعديل على كود حفظ بدون تكرار مصمم هاوي 11 1,254 18-03-23, 09:02 AM
آخر رد: مصمم هاوي

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم