تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] فلترة ايميلات/filter id
#1
السلام عليكم
اود ان اطرح عليكم فكرة خطرت لي وكل الامكانيات متوفرة
في جهازي ولكن اعجز عن التطبيق
سوف اوضح الفكرة والرجاء اعطائي الكود المناسب
للهذه الفكرة وهي كالتالي :
كود :
احمد
عماد
خالد
ابراهيم
حنان
..الخ
اريد ان يتحول المستند النصي
من Textbox1 الي textbox2
ويعطي نتيجة ترتيب الاسماء
ع حسب الحروف الابجدية
ملاحظة : اريد الاكواد انت تدعم الايميلات العربية 
والانجليزية لتصبح هكذا
كود :
احمد
ابراهيم
بسمة
بسام
ahmed
الخ
الرد
تم الشكر بواسطة:
#2
فلترة تكست يحتوي علي كلمات بأكثر من لغة صداع شوية
و يجب هنا ان نتعامل مع Char التي يتكون منها كل String موجود في التكست بوكس
لنفترض ان التكست بوكس تكست مثل التالي

PHP كود :
TextBox1.Text "Ahmed عمر Ali مصطفي" 

لكي نفصل مثل هذه الكلمات عن بعضها البعض علي الأقل نحتاج الي شرط نتأكد منه ان الكلمات إما تنتمي الي اللغة الانجليزية او الي لغة أخري

لذلك نحن هنا نحتاج الي تعريف مصفوفة يكون بها الحروف الانجليزية و الكود التالي يوضح ذلك


PHP كود :
Dim englishChars() As Char = {"a"c"A"c"b"c"B"c"c"c"C"c"d"c"D"c"e"c"E"c"f"c"F"c"g"c"G"c,
 
           "h"c"H"c"i"c"I"c"j"c"J"c"k"c"K"c"l"c"L"c"m"c"M"c"n"c"N"c"o"c"O"c"p"c"P"c,
 
           "q"c"Q"c"r"c"R"c"s"c"S"c"t"c"T"c"u"c"U"c"v"c"V"c"w"c"W"c"x"c"X"c"y"c"Y"c


أخيرا نقوم بعمل Split للتكست
و هنا سوف نحتاج الي مصفوفتان احدهما للكلمات العربية و الاخري للكلمات الانجليزية
ثم نضع شرطا و نتحقق منه
وهنا علينا أن نتحقق من ان الكلمات قد تحتوي علي حروف انجليزية او لا
فإن كانت تحتوي علي حروف انجليزية نضيفها الي مصفوفة اللغة الانجليزية
و ان كانت لا تحتوي علي حروف انجليزية نضيفها الي مصفوفة اللغة العربية

و الكود التالي يوضح الشكل العام لبقية الكود


PHP كود :
       Dim s As String TextBox1.Text
        Dim arabicNames 
As List(Of String) = New List(Of String)()
 
       Dim englishNames As List(Of String) = New List(Of String)()
 
       If Not String.IsNullOrEmpty(sThen
            Dim strings 
As String() = s.Split(" "c)
 
           For i 0 To strings.Length 1
                Dim current 
As String strings(i)
 
               ' هنا نتأكد أن بعض الكلمات قد تحتوي علي حروف انجليزية
                Dim flag As Boolean = current.IndexOfAny(englishChars)

                If Not flag Then
                    englishNames.Add(strings(i))
                End If
                If flag Then
                    arabicNames.Add(strings(i))
                End If
            Next
        End If
        ' 
 
       ' هذا الكود الغرض من عرض النتائج فقط
        For Each arbicName In arabicNames
            ListBox1.Items.Add(arbicName)
        Next

        For Each englishName In englishNames
            ListBox2.Items.Add(englishName)
        Next 

لتنفيذ الكود افتح مشروع و ضع به تكست بوكس و اثنان ListBox و اكتب جميع الأكواد أعلاه في FormLoad

في المرفقات ستجد مثال مكتوبا بنسخة الفيجوال استوديو 2015


الملفات المرفقة
.rar   Test_TextBoxFiltering_VB4ARAB.rar (الحجم : 59.8 ك ب / التحميلات : 34)
الرد
تم الشكر بواسطة: 3asfa~mdmra
#3



اخي اريد هكذا
ترتيب كافة النكات
listbox1 = arabic
ليصبح كافة النكات
عربية وبتريب حرف الابجدية العربية
listbox2=english

لتصبح كافة النكات الانجليزية
وبترتيب ايضاً
وشكرا لك ع مجهودك الجبار
الرد
تم الشكر بواسطة:
#4
السلام عليكم

يمكنك تفعيل خاصية Sorted للأداة ListBox وسيتم الترتيب تلقائيا بمجرد أي إضافة
الرد
تم الشكر بواسطة: 3asfa~mdmra , 3asfa~mdmra
#5
(03-01-17, 11:33 PM)مساعدة كتب : السلام عليكم

يمكنك تفعيل خاصية Sorted للأداة ListBox وسيتم الترتيب تلقائيا بمجرد أي إضافة

مازبط
الرد
تم الشكر بواسطة:
#6
جوابك غير كاف لمعرفة ما حصل معك.

لقد طبقتها على التالي
احمد
عماد
خالد
ابراهيم
حنان

وتم ترتيبها تلقائيا بعد تفعيل خاصية Sorted للأداة ListBox

ضع أمثلة أخرى بدلا من الصورة
الرد
تم الشكر بواسطة:
#7
اضف السطر هذا بعد السطر الذي يسبقه
PHP كود :
Dim strings As String() = (From item As String In s.Split(" "c).AsParallel() Select item).ToArray()
 
           Array.Sort(strings
الرد
تم الشكر بواسطة: 3asfa~mdmra , 3asfa~mdmra
#8
(04-01-17, 01:04 AM)silverlight كتب : اضف السطر هذا بعد السطر الذي يسبقه
PHP كود :
Dim strings As String() = (From item As String In s.Split(" "c).AsParallel() Select item).ToArray()
 
           Array.Sort(strings

طبقت ماتم وضعة ولم ينجح
سوف اضع المشروع وانت بعد  اذن منك
حدد لي مشكلة وشكرأ


الملفات المرفقة
.rar   WindowsApplication5.rar (الحجم : 87.21 ك ب / التحميلات : 30)
الرد
تم الشكر بواسطة:
#9
تفضل الكود
كود :
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    ListBox1.Sorted = True
    ListBox2.Sorted = True
    ListBox1.Items.Clear()
    ListBox2.Items.Clear()
    Dim arr() As String = TextBox1.Text.Trim.Split(vbNewLine).ToArray
    For Each s As String In arr
        If Regex.Match(s, "[a-zA-Z]").Value <> "" Then
            ListBox1.Items.Add(s.Trim)
        Else
            ListBox2.Items.Add(s.Trim)
        End If
    Next
End Sub
الرد
تم الشكر بواسطة: 3asfa~mdmra , 3asfa~mdmra
#10
يسسسسسسسسسسسسسسسسسسسسسلمو
الرد
تم الشكر بواسطة:



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


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