طلب كود بسيط

تم تحميل الصفحة في 0,4381956 ثانية
طلب كود بسيط
الحالة
مغلق و غير مفتوح للمزيد من الردود.
إنضم
21 يوليو 2016
المشاركات
152
الإعجابات
77
النقاط
28
الإقامة
مصر
السلام عليكم ورحمه الله وبركاته
عندي ListBox1
وفيها شويه عناصر
هذه العناصر عددها اكبر من 10 عناصر
وفي منهم 8 عناصر بييجو ورا بعض بيكون اول 4 او 5 حروف وارقام متشابه مع بعض مثل ما هو موضح بالصوره

انا اريد ال 8 عناصر المتشابهين دول يتحطو بالترتيب في Textbox من 1 الي 8
يعني لما اضغط علي Button
يدور علي ال 8 عناصر الي اولهم متشابه ويحط اول عنصر منهم في Textbox1
وهكذا لحد اما ال 8 عناصر يتحطو في ال 8 Textbox
ملحوظه : ال 8 عناصر دول اول ارقام وحروف منهم بتكون متغيره من وقت للتاني في هذه الصوره 341A6 في مره اخري بتكون اي شي اخر
اتمني الرد سريعا
وشكرا مقدما
والسلام عليكم ورحمه الله وبركاته
 

;Null

Beginner Developer
rank
إنضم
18 أكتوبر 2016
المشاركات
75
الإعجابات
82
النقاط
18
كود:
Imports System.IO
Public Class Module1
    Public Shared Sub Main(ByVal args As String())
        Dim ss As SimilarSearcher = New SimilarSearcher(50)
        Dim testList = File.ReadAllLines($"{Environment.CurrentDirectory}\testList.txt")

        Dim Text_With_High_Similar_Texts = ss.Search(testList)

        Console.WriteLine(Text_With_High_Similar_Texts.Value)
        Console.WriteLine("Similar To:")

        For Each item In Text_With_High_Similar_Texts.SimilarText
            Console.WriteLine(item.Value)
        Next

    End Sub
End Class

Public Class SimilarSearcher
    Public ReadOnly Property Threshold As Integer ' ادني قيمه يمكن ان يتشابة نص بأخر ، تكون من %100

    Public Sub New(ByVal threshold As Integer)
        Me.Threshold = threshold
    End Sub
    ' البحث فى النصوص المعطاه
    Public Function Search(ByVal list As String()) As Text

        Dim textList = ConvertToTextList(list) ' تحويل الليست من string
        ' الى ليست من الكلاس Text

        ' مقارنه كل نص فى الليست بالنصوص التى تليه
        For i As Integer = 0 To textList.Count - 1

            For j As Integer = (i + 1) To textList.Count - 1

                If CompareSimilarity(textList(i), textList(j)) Then ' اذا كان النص مشابه بدرجه تتعدى ال Threshold
                    textList(i).SimilarText.Add(textList(j)) ' اضافة النص المشابه الى ليست النصوص المشابه للنص الحالى
                End If
            Next
        Next

        Return GetTextWithHighSimilarTexts(textList) ' ارجاع النص الذي يحتوي على اكثر النصوص المشابه له
    End Function
    ' مقارنة حروف النص ثاني بالاول
    Private Function CompareSimilarity(ByVal text1 As Text, ByVal text2 As Text) As Boolean
        Dim length As Integer = text1.Value.Length ' الحصول على طول النص الاول
        Dim similarCharacterCount As Integer = 0 ' عدد الاحرف المتشابة بين النصين

        For i As Integer = 0 To length - 1
            If text1.Value(i) = text2.Value(i) Then ' اذا كان الحرف من النص الاول يساوى الحرف من النص الثاني
                similarCharacterCount += 1
            End If
        Next

        Dim result As Double = similarCharacterCount / length ' النسبة بين الحروف المتشابة الي طول النص الاول

        If result * 100 >= Threshold Then ' اذا كانت النسبة المؤيه اكبر من او تساوي الحد الادني
            Return True
        Else
            Return False
        End If

    End Function

    Private Function ConvertToTextList(ByVal list As String()) As List(Of Text)
        Dim convertedList As List(Of Text) = New List(Of Text)() ' انشاء ليست من الكلاس Text

        For Each item In list
            convertedList.Add(New Text(item)) ' اضافه كائن من الكلاس Text
            ' الى الليست و جعل ال value تساوي ال item
        Next

        Return convertedList
    End Function

    ' البحث عن النص الذي يحتوي على اكبر عدد من النصوص المشابة
    Private Function GetTextWithHighSimilarTexts(ByVal list As List(Of Text)) As Text

        Dim text As Text = list(0)

        For Each item In list
            If item.SimilarText.Count > text.SimilarText.Count Then
                text = item
            End If
        Next

        Return text
    End Function
End Class

    Public Class Text
    Public ReadOnly Property SimilarText As List(Of Text) = New List(Of Text)() ' النصوص المشابه
    Public Property Value As String ' قيمه النص

    Public Sub New(ByVal value As String)
        Me.Value = value
    End Sub
End Class

اى جزء غير مفهوم لا تتردد
 
إنضم
21 يوليو 2016
المشاركات
152
الإعجابات
77
النقاط
28
الإقامة
مصر
كود:
Imports System.IO
Public Class Module1
    Public Shared Sub Main(ByVal args As String())
        Dim ss As SimilarSearcher = New SimilarSearcher(50)
        Dim testList = File.ReadAllLines($"{Environment.CurrentDirectory}\testList.txt")

        Dim Text_With_High_Similar_Texts = ss.Search(testList)

        Console.WriteLine(Text_With_High_Similar_Texts.Value)
        Console.WriteLine("Similar To:")

        For Each item In Text_With_High_Similar_Texts.SimilarText
            Console.WriteLine(item.Value)
        Next

    End Sub
End Class

Public Class SimilarSearcher
    Public ReadOnly Property Threshold As Integer ' ادني قيمه يمكن ان يتشابة نص بأخر ، تكون من %100

    Public Sub New(ByVal threshold As Integer)
        Me.Threshold = threshold
    End Sub
    ' البحث فى النصوص المعطاه
    Public Function Search(ByVal list As String()) As Text

        Dim textList = ConvertToTextList(list) ' تحويل الليست من string
        ' الى ليست من الكلاس Text

        ' مقارنه كل نص فى الليست بالنصوص التى تليه
        For i As Integer = 0 To textList.Count - 1

            For j As Integer = (i + 1) To textList.Count - 1

                If CompareSimilarity(textList(i), textList(j)) Then ' اذا كان النص مشابه بدرجه تتعدى ال Threshold
                    textList(i).SimilarText.Add(textList(j)) ' اضافة النص المشابه الى ليست النصوص المشابه للنص الحالى
                End If
            Next
        Next

        Return GetTextWithHighSimilarTexts(textList) ' ارجاع النص الذي يحتوي على اكثر النصوص المشابه له
    End Function
    ' مقارنة حروف النص ثاني بالاول
    Private Function CompareSimilarity(ByVal text1 As Text, ByVal text2 As Text) As Boolean
        Dim length As Integer = text1.Value.Length ' الحصول على طول النص الاول
        Dim similarCharacterCount As Integer = 0 ' عدد الاحرف المتشابة بين النصين

        For i As Integer = 0 To length - 1
            If text1.Value(i) = text2.Value(i) Then ' اذا كان الحرف من النص الاول يساوى الحرف من النص الثاني
                similarCharacterCount += 1
            End If
        Next

        Dim result As Double = similarCharacterCount / length ' النسبة بين الحروف المتشابة الي طول النص الاول

        If result * 100 >= Threshold Then ' اذا كانت النسبة المؤيه اكبر من او تساوي الحد الادني
            Return True
        Else
            Return False
        End If

    End Function

    Private Function ConvertToTextList(ByVal list As String()) As List(Of Text)
        Dim convertedList As List(Of Text) = New List(Of Text)() ' انشاء ليست من الكلاس Text

        For Each item In list
            convertedList.Add(New Text(item)) ' اضافه كائن من الكلاس Text
            ' الى الليست و جعل ال value تساوي ال item
        Next

        Return convertedList
    End Function

    ' البحث عن النص الذي يحتوي على اكبر عدد من النصوص المشابة
    Private Function GetTextWithHighSimilarTexts(ByVal list As List(Of Text)) As Text

        Dim text As Text = list(0)

        For Each item In list
            If item.SimilarText.Count > text.SimilarText.Count Then
                text = item
            End If
        Next

        Return text
    End Function
End Class

    Public Class Text
    Public ReadOnly Property SimilarText As List(Of Text) = New List(Of Text)() ' النصوص المشابه
    Public Property Value As String ' قيمه النص

    Public Sub New(ByVal value As String)
        Me.Value = value
    End Sub
End Class

اى جزء غير مفهوم لا تتردد
كل هذا لم افهمه وليس هذا ما اريده
 
إنضم
21 يوليو 2016
المشاركات
152
الإعجابات
77
النقاط
28
الإقامة
مصر
كود:
Imports System.IO
Public Class Module1
    Public Shared Sub Main(ByVal args As String())
        Dim ss As SimilarSearcher = New SimilarSearcher(50)
        Dim testList = File.ReadAllLines($"{Environment.CurrentDirectory}\testList.txt")

        Dim Text_With_High_Similar_Texts = ss.Search(testList)

        Console.WriteLine(Text_With_High_Similar_Texts.Value)
        Console.WriteLine("Similar To:")

        For Each item In Text_With_High_Similar_Texts.SimilarText
            Console.WriteLine(item.Value)
        Next

    End Sub
End Class

Public Class SimilarSearcher
    Public ReadOnly Property Threshold As Integer ' ادني قيمه يمكن ان يتشابة نص بأخر ، تكون من %100

    Public Sub New(ByVal threshold As Integer)
        Me.Threshold = threshold
    End Sub
    ' البحث فى النصوص المعطاه
    Public Function Search(ByVal list As String()) As Text

        Dim textList = ConvertToTextList(list) ' تحويل الليست من string
        ' الى ليست من الكلاس Text

        ' مقارنه كل نص فى الليست بالنصوص التى تليه
        For i As Integer = 0 To textList.Count - 1

            For j As Integer = (i + 1) To textList.Count - 1

                If CompareSimilarity(textList(i), textList(j)) Then ' اذا كان النص مشابه بدرجه تتعدى ال Threshold
                    textList(i).SimilarText.Add(textList(j)) ' اضافة النص المشابه الى ليست النصوص المشابه للنص الحالى
                End If
            Next
        Next

        Return GetTextWithHighSimilarTexts(textList) ' ارجاع النص الذي يحتوي على اكثر النصوص المشابه له
    End Function
    ' مقارنة حروف النص ثاني بالاول
    Private Function CompareSimilarity(ByVal text1 As Text, ByVal text2 As Text) As Boolean
        Dim length As Integer = text1.Value.Length ' الحصول على طول النص الاول
        Dim similarCharacterCount As Integer = 0 ' عدد الاحرف المتشابة بين النصين

        For i As Integer = 0 To length - 1
            If text1.Value(i) = text2.Value(i) Then ' اذا كان الحرف من النص الاول يساوى الحرف من النص الثاني
                similarCharacterCount += 1
            End If
        Next

        Dim result As Double = similarCharacterCount / length ' النسبة بين الحروف المتشابة الي طول النص الاول

        If result * 100 >= Threshold Then ' اذا كانت النسبة المؤيه اكبر من او تساوي الحد الادني
            Return True
        Else
            Return False
        End If

    End Function

    Private Function ConvertToTextList(ByVal list As String()) As List(Of Text)
        Dim convertedList As List(Of Text) = New List(Of Text)() ' انشاء ليست من الكلاس Text

        For Each item In list
            convertedList.Add(New Text(item)) ' اضافه كائن من الكلاس Text
            ' الى الليست و جعل ال value تساوي ال item
        Next

        Return convertedList
    End Function

    ' البحث عن النص الذي يحتوي على اكبر عدد من النصوص المشابة
    Private Function GetTextWithHighSimilarTexts(ByVal list As List(Of Text)) As Text

        Dim text As Text = list(0)

        For Each item In list
            If item.SimilarText.Count > text.SimilarText.Count Then
                text = item
            End If
        Next

        Return text
    End Function
End Class

    Public Class Text
    Public ReadOnly Property SimilarText As List(Of Text) = New List(Of Text)() ' النصوص المشابه
    Public Property Value As String ' قيمه النص

    Public Sub New(ByVal value As String)
        Me.Value = value
    End Sub
End Class

اى جزء غير مفهوم لا تتردد
يوجد في ListBox
8 عناصر متشابه في اول 5 او 4 حروف وارقام منها ولكن هذه البدايات تختلف من وقت لاخر
ف انا اريد كود
عندما يبحث في Listbox ويجد هذه العناصر المتشابه في الاول وهم ال 8 عناصر يضعهم في
Textbox 1 الي Textbox 8
هذا ما اريده فقط
 
إنضم
8 سبتمبر 2013
المشاركات
7,969
الإعجابات
11,891
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
يوجد في ListBox
8 عناصر متشابه في اول 5 او 4 حروف وارقام منها ولكن هذه البدايات تختلف من وقت لاخر
ف انا اريد كود
عندما يبحث في Listbox ويجد هذه العناصر المتشابه في الاول وهم ال 8 عناصر يضعهم في
Textbox 1 الي Textbox 8
هذا ما اريده فقط
استخدم شرط مع StartWith() تقارن لك اول الكلمة مع الذي تريد
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,772
الإعجابات
1,543
النقاط
123
الإقامة
iraq
كل هذا لم افهمه وليس هذا ما اريده
اهلا وسهلا اخي
ارى ان الكود الذي كتبه طويل ومتعب بعض الشيء
كلمة شكرا ماتكفلك شي حتى وان كان الكود مو الي تبيه
وشيء اخر ان لم تكن فهمته كيف عرفت انه ليس ماتريد ؟
 
إنضم
21 يوليو 2016
المشاركات
152
الإعجابات
77
النقاط
28
الإقامة
مصر
اهلا وسهلا اخي
ارى ان الكود الذي كتبه طويل ومتعب بعض الشيء
كلمة شكرا ماتكفلك شي حتى وان كان الكود مو الي تبيه
وشيء اخر ان لم تكن فهمته كيف عرفت انه ليس ماتريد ؟
لانه مش فيه الشئ الي انا عاوزه الشئ الي انا عاوزه انا فاهمه بس مش قادر افهمه كويس بس مش اكتر
 

Ahmed Al'jabari

إداري أقسام البرمجة
rankrankrankrank
إنضم
24 يونيو 2017
المشاركات
1,772
الإعجابات
1,543
النقاط
123
الإقامة
iraq

;Null

Beginner Developer
rank
إنضم
18 أكتوبر 2016
المشاركات
75
الإعجابات
82
النقاط
18
ما اصدار ال vs الذى تستخدمه
المشروع معمول ب 2015
 

;Null

Beginner Developer
rank
إنضم
18 أكتوبر 2016
المشاركات
75
الإعجابات
82
النقاط
18
لا اعلم
هذا كود ال button

كود:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Searcher As SimilarSearcher = New SimilarSearcher(50)
        Dim Result = Searcher.Search(ListBox1.Items.OfType(Of String).ToList())
        TextBox1.Text = Result.Value + "," + String.Join(",", Result.SimilarText)
    End Sub
وهذا الكلاس
SimilarSearcher | تحميل

ضعه فى مشروعك
 
إنضم
21 يوليو 2016
المشاركات
152
الإعجابات
77
النقاط
28
الإقامة
مصر
لا اعلم
هذا كود ال button

كود:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Searcher As SimilarSearcher = New SimilarSearcher(50)
        Dim Result = Searcher.Search(ListBox1.Items.OfType(Of String).ToList())
        TextBox1.Text = Result.Value + "," + String.Join(",", Result.SimilarText)
    End Sub
وهذا الكلاس
SimilarSearcher | تحميل

ضعه فى مشروعك
نفس الاخطاء يا اخي :(
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل