تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] حذف عنصر خارج المصفوفة
#1
السلام عليكم ورحمة الله  وبركاتة

عندي داتاتابل اقوم بتحميل البيانات اليها اريد حذف اي حرف  بالصفوف لاول خلية  والحرف لا يوجد بالمصفوفة

اريد تعديل الكود التالي :

بمعني لو عندي خلية بها متغير مثلا  a    = maged   بعد حذف الحروف خارج المصفوفة حيث باقي الحروف غير موجودة بالمصفوفة فتحذف

بمعني اخر الابقاء علي الحروف داخل المصفوفة والباقي يحذف

كود :
 Dim chars As Char() = {"a", "s", "v", "t"}
       For i = 0 To dt.Rows.Count - 1
           DataGrid.Rows.Add(New String() {dt.Rows(i).Item(0).ToString})
       Next
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#2
(16-12-19, 02:05 PM)محمد اسماعيل كتب : السلام عليكم ورحمة الله  وبركاتة

عندي داتاتابل اقوم بتحميل البيانات اليها اريد حذف اي حرف  بالصفوف لاول خلية  والحرف لا يوجد بالمصفوفة

اريد تعديل الكود التالي :

بمعني لو عندي خلية بها متغير مثلا  a    = maged   بعد حذف الحروف خارج المصفوفة حيث باقي الحروف غير موجودة بالمصفوفة فتحذف

بمعني اخر الابقاء علي الحروف داخل المصفوفة والباقي يحذف

كود :
 Dim chars As Char() = {"a", "s", "v", "t"}
       For i = 0 To dt.Rows.Count - 1
           DataGrid.Rows.Add(New String() {dt.Rows(i).Item(0).ToString})
       Next

كود :
For i = 0 To dt.Rows.Count - 1
   Dim d = dt.Rows(i).Item(0).ToString
   d = Regex.Replace(d, "[^asvt]", String.Empty, RegexOptions.IgnoreCase)
   DataGrid.Rows.Add(New String() {d})
Next

او
كود :
Dim chars As Char() = {"a", "s", "v", "t"}
For i = 0 To dt.Rows.Count - 1
   Dim d = dt.Rows(i).Item(0).ToString
   d = Regex.Replace(d, "[^" & String.Concat(chars) & "]", String.Empty, RegexOptions.IgnoreCase)
   DataGrid.Rows.Add(New String() {d})
Next
الرد }}}
#3
السلام عليكم اخي محمد
اولا اشكر الاخ smalw  على ماقدمه 
ولتنويع الافكار والاكواد اليك هذا الكود
كود :
Dim dd As Char() = {"a", "s", "v", "t"}
   Dim dt As New DataTable()
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       For i As Integer = 0 To dt.Rows.Count - 1
           ' اخي محمد استبدل الرقم صفر برقم العمود الذي تريد تغيير قيمه
           For Each c As Char In dt.Rows(i).Item(0).ToString().ToCharArray
               If Not dd.Contains(c) Then
                   dt.Rows(i).Item(0) = dt.Rows(i).Item(0).ToString.Replace(c, "")
               End If

           Next
       Next
   End Sub
واليك هذا المثال فيه تلاث حالات (تغيير في مربع نص - تغيير في ليست بوكس- تغيير في داتاتابل)
ارجو ان اكون قد افدتك .... دمت بخير


الملفات المرفقة
.rar   M_Ismail.rar (الحجم : 105.1 ك ب / التحميلات : 3)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: محمد اسماعيل , asemshahen5
#4
(16-12-19, 09:14 PM)smalw كتب :
(16-12-19, 02:05 PM)محمد اسماعيل كتب : السلام عليكم ورحمة الله  وبركاتة

عندي داتاتابل اقوم بتحميل البيانات اليها اريد حذف اي حرف  بالصفوف لاول خلية  والحرف لا يوجد بالمصفوفة

اريد تعديل الكود التالي :

بمعني لو عندي خلية بها متغير مثلا  a    = maged   بعد حذف الحروف خارج المصفوفة حيث باقي الحروف غير موجودة بالمصفوفة فتحذف

بمعني اخر الابقاء علي الحروف داخل المصفوفة والباقي يحذف

كود :
 Dim chars As Char() = {"a", "s", "v", "t"}
       For i = 0 To dt.Rows.Count - 1
           DataGrid.Rows.Add(New String() {dt.Rows(i).Item(0).ToString})
       Next

كود :
For i = 0 To dt.Rows.Count - 1
   Dim d = dt.Rows(i).Item(0).ToString
   d = Regex.Replace(d, "[^a,s,v,t]", String.Empty, RegexOptions.IgnoreCase)
   DataGrid.Rows.Add(New String() {d})
Next

او
كود :
Dim chars As Char() = {"a", "s", "v", "t"}
For i = 0 To dt.Rows.Count - 1
   Dim d = dt.Rows(i).Item(0).ToString
   d = Regex.Replace(d, "[^" & String.Join(",", chars) & "]", String.Empty, RegexOptions.IgnoreCase)
   DataGrid.Rows.Add(New String() {d})
Next

بشكر حضرتك اولا علي المتابعة الكود اكثر من رائع .

عندي طلب بسيط  لو في رابط حضرتك للتعابير المنطقيةRegex    بحيث اقدر اتعامل مع النوع دة من المشكلات اكون شاكر لحضرتك.
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#5
دورة Regular Expression يالعربي


الكود السابق
^ = لا
كود :
[^asvt]
تعني ليس من هذه الاحرف
فيقوم replace باستبدال [من ليس ضمن هذه الاحرف] ب string.empty وهي مثل ""




كود :
String.Concat(chars)
concat تقوم بتجميع المصفوفه على شكل نص واحد فتصبح "asvt"
الرد }}}
#6
(16-12-19, 09:56 PM)ابراهيم ايبو كتب : السلام عليكم اخي محمد
اولا اشكر الاخ smalw  على ماقدمه 
ولتنويع الافكار والاكواد اليك هذا الكود
كود :
Dim dd As Char() = {"a", "s", "v", "t"}
   Dim dt As New DataTable()
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       For i As Integer = 0 To dt.Rows.Count - 1
           ' اخي محمد استبدل الرقم صفر برقم العمود الذي تريد تغيير قيمه
           For Each c As Char In dt.Rows(i).Item(0).ToString().ToCharArray
               If Not dd.Contains(c) Then
                   dt.Rows(i).Item(0) = dt.Rows(i).Item(0).ToString.Replace(c, "")
               End If

           Next
       Next
   End Sub
واليك هذا المثال فيه تلاث حالات (تغيير في مربع نص - تغيير في ليست بوكس- تغيير في داتاتابل)
ارجو ان اكون قد افدتك .... دمت بخير

ولك كل الخير انشاء الله .

بشكر حضرتك علي التفاعل

(16-12-19, 10:11 PM)smalw كتب : دورة Regular Expression يالعربي


الكود السابق
^ = لا
كود :
[^asvt]
تعني ليس من هذه الاحرف
فيقوم replace باستبدال [من ليس ضمن هذه الاحرف] ب string.empty وهي مثل ""




كود :
String.Concat(chars)
concat تقوم بتجميع المصفوفه على شكل نص واحد فتصبح "asvt"

وفيت اخي الكريم اشكرك
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5 , asemshahen5



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


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