16-07-17, 03:10 AM
(آخر تعديل لهذه المشاركة : 16-07-17, 03:14 AM {2} بواسطة الماجيك مسعد.)
ياسلام عليك
والله انت استاذ
دا افضل شئ
وكمان انت فهمتنى حاجات مكنتش تخطر فى بالى خالص
ايضا سوف ابحث عن HttpClient
لكى افهمها اكتر لانى لم اسمع عنها من قبل
تسلم ايدك بجد
ربنا يجعله فى ميزان حسناتك
واجهتنى مشكلة اخرى كما بالصورة
تظهر فقط عندما تكون عناصر ليست 2
اقل من ليست 1
يريت تفدنى بالسبب والحل
وجزاك الله كل خير
والله انت استاذ
دا افضل شئ
وكمان انت فهمتنى حاجات مكنتش تخطر فى بالى خالص
ايضا سوف ابحث عن HttpClient
لكى افهمها اكتر لانى لم اسمع عنها من قبل
تسلم ايدك بجد
ربنا يجعله فى ميزان حسناتك
واجهتنى مشكلة اخرى كما بالصورة
تظهر فقط عندما تكون عناصر ليست 2
اقل من ليست 1
يريت تفدنى بالسبب والحل
وجزاك الله كل خير
(16-07-17, 01:56 AM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
هو انت لو تتبعت الكود سطر سطر اثناء التنفيذ ستلاحظ انه لا يعيد قيمة False
لننظر للكود
اولاً
ثم استدعيت التاليPHP كود :
Dim z As Integer=FindItem(ListView2.Items, 0, itm.SubItems(1).Text)
هل تتوقع مثلاً ان النوع Integer ليس رقماً لتضع الشرط السابق ؟؟؟PHP كود :
If IsNumeric(z) Then
بعد ذلك
هل Integer = False ???PHP كود :
If z = False Then
بعد ذلك تريد من الدالة اعادة نوعين (مرة قيمة رقمية و مرة قيمة منطقية) , لحل مثل هذه الاشكالية لديك العديد من الطرق
اولها كما في الكود السابق , اذ اعدت مصفوفة بنوع و قيمة .
او ان تستعمل اعادة نوع مجهول و عند الاستدعاء تجري عملية التحويل للنوع الذي تريده
بالتطبيق على الكود السابق
و الحلقة تصبحPHP كود :
Public Shared Function FindItem2(Of T)(ItemList As ListView.ListViewItemCollection, ColumnIndex As Integer, SearchString As String) As T
For Each Item As ListViewItem In ItemList
Dim converter = TypeDescriptor.GetConverter(GetType(T))
If converter.CanConvertFrom(GetType(String)) Then
If Item.SubItems(ColumnIndex).Text = SearchString Then
Dim value As String = Item.Index
Return DirectCast(converter.ConvertFromString(value), T)
End If
Else
Return Nothing
End If
Next
End Function
هذه المقالة تسلط الضوء على التقنية - مفهوم Generics بشكل مبسطمفهوم Generics بشكل مبسطPHP كود :
If Not String.IsNullOrEmpty(itm.SubItems(1).Text) Then
Dim z As String = FindItem2(Of String)(ListView2.Items, 0, itm.SubItems(1).Text)
If IsNumeric(z) Then
itm.SubItems(5).Text = "No"
' MsgBox(z)
Else
itm.SubItems(3).Text = ""
itm.SubItems(4).Text = ""
itm.SubItems(5).Text = "Yes"
itm.BackColor = Color.DarkSlateBlue
itm.ForeColor = Color.DarkRed
End If
End If
Next
كما و يوجد طرق اخرى و افكار للوصول الى حل مشابه.
تحياتي.
انصحك باستخدام الاسلوب الحديث في التعامل مع الملفات على السيرفرت و المواقع عبر مكتبة HttpClient
و استخدام اسلوب عدم التزامن لتتلافى مشاكل التجميد لدى الاستدعاء
PHP كود :
Private Async Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
....
....
Dim text2 As String
Using text22 As New Http.HttpClient()
text2 = Await text22.GetStringAsync("https://goo.gl/iHJyWe")
End Using
....
....
End Sub

