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

عندي textbox   ينزل في كلام والكلام يكون مشبوك مع بعض


إقتباس :;FA14070795;FB07077845;MD0C



اريد اعطي امر له بان اذا حصلت هذه العلامه ";"

ابدى بسطر جديد

ليكون الناتج


إقتباس :;FA14070795
;FB07077845
;MD0C



حاولت مع هذا الكود

كود :
       'هنا استقبل اكلام
       Dim receivedData As String = ""
       receivedData = ReceiveSerialData()


       If receivedData.Contains(";") Then
           txtReceived.Text &= receivedData & Environment.NewLine
       End If


بس ما ضبط


كود :
  Function ReceiveSerialData() As String
       Dim Incoming As String
       Try
           Incoming = SerialPort1.ReadExisting()

           If Incoming Is Nothing Then
           Return "nothing" & vbCrLf
       Else
           Return Incoming
       End If
       Catch ex As TimeoutException
       Return "Error: Serial Port read timed out."
       End Try

   End Function


بارك الله فيكم وشكرا لكم
الرد }}}
تم الشكر بواسطة:
#2
(30-08-18, 03:03 PM)عابر سبيل 2 كتب :
(30-08-18, 02:15 PM)dubai.eig كتب : السلام عليكم ورحمة الله

عندي textbox   ينزل في كلام والكلام يكون مشبوك مع بعض


إقتباس :;FA14070795;FB07077845;MD0C



اريد اعطي امر له بان اذا حصلت هذه العلامه ";"

ابدى بسطر جديد

ليكون الناتج


إقتباس :;FA14070795
;FB07077845
;MD0C



حاولت مع هذا الكود

كود :
       'هنا استقبل اكلام
       Dim receivedData As String = ""
       receivedData = ReceiveSerialData()


       If receivedData.Contains(";") Then
           txtReceived.Text &= receivedData & Environment.NewLine
       End If


بس ما ضبط


كود :
  Function ReceiveSerialData() As String
       Dim Incoming As String
       Try
           Incoming = SerialPort1.ReadExisting()

           If Incoming Is Nothing Then
           Return "nothing" & vbCrLf
       Else
           Return Incoming
       End If
       Catch ex As TimeoutException
       Return "Error: Serial Port read timed out."
       End Try

   End Function


بارك الله فيكم وشكرا لكم


جرب هذه الطريقة 
PHP كود :
receivedData ReceiveSerialData().replace(";",(";" vbnewline)) 



جميل جدا بارك الله فيك

الحمدالله ضبط

بس باقي شي واحد 

الان يطلع كذا

إقتباس :;FA14077030
;FB07077845


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


الكود الي عندي هذا

كود :
  If txtReceived.Text.Substring(0, 2) = "FA" Then


           MsgBox(FRQ)

       ElseIf txtReceived.Text.Substring(0, 2) = "FB" Then
 
           MsgBox(FRQ)
 End If


غير شغال




جربت هذا الكود

كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
         

       ElseIf txtReceived.Text.Contains("FB") Then
           MsgBox(FRQ)
 End If


اشتغل على If txtReceived.Text.Contains("FA") Then فقط وما قراء الثاني
FB



وبارك الله فيك وشكرا على وقتك ومجهودك
الرد }}}
تم الشكر بواسطة: عابر سبيل 2 , عابر سبيل 2
#3
وعليكم السلام ورحمة الله وبركاته

فى البداية ساقول ان لديك فى الفورم TextBox1
ويحتوى على قيمة او يتم جلب قيمه به بهذا الشكل
كود :
FA14070795;FB07077845;MD0C;

ولتوزيعة السطر على عدة اسطر فكل ما عليك فعله التالى
فى البداية يجب ان تكون متاكد وعلى علم ان TextBox1 من نوع MultLine

تعال فى حدث الزر وقم بتطبق الكود التالى
كود :
       Dim ss As String() = TextBox1.Text.Split(";")
       TextBox1.Text = Nothing
       For ii As Integer = 0 To ss.LongCount - 2
           TextBox1.Text += ss(ii) & ";" & IIf(ii = ss.LongCount - 2, "", vbNewLine)
       Next

بمجرد الذغط على الزر ستجد ان النتائج اصبح بهذا الشكل
PHP كود :
FA14070795;
FB07077845;
MD0C

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: عابر سبيل 2 , عابر سبيل 2
#4
(30-08-18, 04:09 PM)عابر سبيل 2 كتب :
(30-08-18, 03:44 PM)dubai.eig كتب :
(30-08-18, 03:03 PM)عابر سبيل 2 كتب :
(30-08-18, 02:15 PM)dubai.eig كتب : السلام عليكم ورحمة الله

عندي textbox   ينزل في كلام والكلام يكون مشبوك مع بعض


إقتباس :;FA14070795;FB07077845;MD0C



اريد اعطي امر له بان اذا حصلت هذه العلامه ";"

ابدى بسطر جديد

ليكون الناتج


إقتباس :;FA14070795
;FB07077845
;MD0C



حاولت مع هذا الكود

كود :
       'هنا استقبل اكلام
       Dim receivedData As String = ""
       receivedData = ReceiveSerialData()


       If receivedData.Contains(";") Then
           txtReceived.Text &= receivedData & Environment.NewLine
       End If


بس ما ضبط


كود :
  Function ReceiveSerialData() As String
       Dim Incoming As String
       Try
           Incoming = SerialPort1.ReadExisting()

           If Incoming Is Nothing Then
           Return "nothing" & vbCrLf
       Else
           Return Incoming
       End If
       Catch ex As TimeoutException
       Return "Error: Serial Port read timed out."
       End Try

   End Function


بارك الله فيكم وشكرا لكم


جرب هذه الطريقة 
PHP كود :
receivedData ReceiveSerialData().replace(";",(";" vbnewline)) 



جميل جدا بارك الله فيك

الحمدالله ضبط

بس باقي شي واحد 

الان يطلع كذا

إقتباس :;FA14077030
;FB07077845


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


الكود الي عندي هذا

كود :
  If txtReceived.Text.Substring(0, 2) = "FA" Then


           MsgBox(FRQ)

       ElseIf txtReceived.Text.Substring(0, 2) = "FB" Then
 
           MsgBox(FRQ)
 End If


غير شغال




جربت هذا الكود

كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
         

       ElseIf txtReceived.Text.Contains("FB") Then
           MsgBox(FRQ)
 End If


اشتغل على If txtReceived.Text.Contains("FA") Then فقط وما قراء الثاني
FB



وبارك الله فيك وشكرا على وقتك ومجهودك


جرب هذه الطريقة
PHP كود :
Dim arr() As String
arr 
Regex.Matches(receivedData"(?<=\w+)\d+?(?=;)").
 
     Cast(Of Match).Select(Function(As Matchx.Value).ToArray 
ستحصل على مصفوفة فيها الأرقام فقط

وهذا كامل الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String
arr = Regex.Matches(receivedData, "(?<=\w+)\d+?(?=;)").
      Cast(Of Match).Select(Function(x As Match) x.Value).ToArray

For Each a As String In arr
    MsgBox(a)
Next 



شغلك جميل بارك الله فيك

بس الان لان عندي اكثر من عمليه في نفس الوقت وفي المربع يطلع

;FA14070795
;FB07077845
;MD0C


علشان كذا اريد اوضح  اقول للكود في حالت حصلت اول حرفين

FA

او

FB
او
MD

لكل حرفين اريد اعمل عمليه

ان شاءالله قدرة اوصل الفكرة

وشكرا من جديد
الرد }}}
تم الشكر بواسطة: عابر سبيل 2
#5
(30-08-18, 05:13 PM)dubai.eig كتب :
(30-08-18, 04:09 PM)عابر سبيل 2 كتب :
(30-08-18, 03:44 PM)dubai.eig كتب :
(30-08-18, 03:03 PM)عابر سبيل 2 كتب :
(30-08-18, 02:15 PM)dubai.eig كتب : السلام عليكم ورحمة الله

عندي textbox   ينزل في كلام والكلام يكون مشبوك مع بعض





اريد اعطي امر له بان اذا حصلت هذه العلامه ";"

ابدى بسطر جديد

ليكون الناتج





حاولت مع هذا الكود

كود :
       'هنا استقبل اكلام
       Dim receivedData As String = ""
       receivedData = ReceiveSerialData()


       If receivedData.Contains(";") Then
           txtReceived.Text &= receivedData & Environment.NewLine
       End If


بس ما ضبط


كود :
  Function ReceiveSerialData() As String
       Dim Incoming As String
       Try
           Incoming = SerialPort1.ReadExisting()

           If Incoming Is Nothing Then
           Return "nothing" & vbCrLf
       Else
           Return Incoming
       End If
       Catch ex As TimeoutException
       Return "Error: Serial Port read timed out."
       End Try

   End Function


بارك الله فيكم وشكرا لكم


جرب هذه الطريقة 
PHP كود :
receivedData ReceiveSerialData().replace(";",(";" vbnewline)) 



جميل جدا بارك الله فيك

الحمدالله ضبط

بس باقي شي واحد 

الان يطلع كذا

إقتباس :;FA14077030
;FB07077845


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


الكود الي عندي هذا

كود :
  If txtReceived.Text.Substring(0, 2) = "FA" Then


           MsgBox(FRQ)

       ElseIf txtReceived.Text.Substring(0, 2) = "FB" Then
 
           MsgBox(FRQ)
 End If


غير شغال




جربت هذا الكود

كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
         

       ElseIf txtReceived.Text.Contains("FB") Then
           MsgBox(FRQ)
 End If


اشتغل على If txtReceived.Text.Contains("FA") Then فقط وما قراء الثاني
FB



وبارك الله فيك وشكرا على وقتك ومجهودك


جرب هذه الطريقة
PHP كود :
Dim arr() As String
arr 
Regex.Matches(receivedData"(?<=\w+)\d+?(?=;)").
 
     Cast(Of Match).Select(Function(As Matchx.Value).ToArray 
ستحصل على مصفوفة فيها الأرقام فقط

وهذا كامل الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String
arr = Regex.Matches(receivedData, "(?<=\w+)\d+?(?=;)").
      Cast(Of Match).Select(Function(x As Match) x.Value).ToArray

For Each a As String In arr
    MsgBox(a)
Next 



شغلك جميل بارك الله فيك

بس الان لان عندي اكثر من عمليه في نفس الوقت وفي المربع يطلع

;FA14070795
;FB07077845
;MD0C


علشان كذا اريد اوضح  اقول للكود في حالت حصلت اول حرفين

FA

او

FB
او
MD

لكل حرفين اريد اعمل عمليه

ان شاءالله قدرة اوصل الفكرة

وشكرا من جديد


جرب هذا الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String = receivedData.ToString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
For Each a As String In arr
    Select Case a.Substring(0, 2)

        Case "FA"
            MsgBox("---FA---")

        Case "FB"
            MsgBox("---FB---")

        Case "MD"
            MsgBox("---MD---")

    End Select
Next 
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig
#6
(30-08-18, 05:40 PM)عابر سبيل 2 كتب :
(30-08-18, 05:13 PM)dubai.eig كتب :
(30-08-18, 04:09 PM)عابر سبيل 2 كتب :
(30-08-18, 03:44 PM)dubai.eig كتب :
(30-08-18, 03:03 PM)عابر سبيل 2 كتب : جرب هذه الطريقة 
PHP كود :
receivedData ReceiveSerialData().replace(";",(";" vbnewline)) 



جميل جدا بارك الله فيك

الحمدالله ضبط

بس باقي شي واحد 

الان يطلع كذا

إقتباس :;FA14077030
;FB07077845


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


الكود الي عندي هذا

كود :
  If txtReceived.Text.Substring(0, 2) = "FA" Then


           MsgBox(FRQ)

       ElseIf txtReceived.Text.Substring(0, 2) = "FB" Then
 
           MsgBox(FRQ)
 End If


غير شغال




جربت هذا الكود

كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
         

       ElseIf txtReceived.Text.Contains("FB") Then
           MsgBox(FRQ)
 End If


اشتغل على If txtReceived.Text.Contains("FA") Then فقط وما قراء الثاني
FB



وبارك الله فيك وشكرا على وقتك ومجهودك


جرب هذه الطريقة
PHP كود :
Dim arr() As String
arr 
Regex.Matches(receivedData"(?<=\w+)\d+?(?=;)").
 
     Cast(Of Match).Select(Function(As Matchx.Value).ToArray 
ستحصل على مصفوفة فيها الأرقام فقط


وهذا كامل الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String
arr = Regex.Matches(receivedData, "(?<=\w+)\d+?(?=;)").
      Cast(Of Match).Select(Function(x As Match) x.Value).ToArray

For Each a As String In arr
    MsgBox(a)
Next 



شغلك جميل بارك الله فيك

بس الان لان عندي اكثر من عمليه في نفس الوقت وفي المربع يطلع

;FA14070795
;FB07077845
;MD0C


علشان كذا اريد اوضح  اقول للكود في حالت حصلت اول حرفين

FA

او

FB
او
MD

لكل حرفين اريد اعمل عمليه

ان شاءالله قدرة اوصل الفكرة

وشكرا من جديد


جرب هذا الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String = receivedData.ToString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
For Each a As String In arr
    Select Case a.Substring(0, 2)

        Case "FA"
            MsgBox("---FA---")

        Case "FB"
            MsgBox("---FB---")

        Case "MD"
            MsgBox("---MD---")

    End Select
Next 



تعبتك معاي بارك الله فيك

مع الاسف نفس الشي

   


يقراء بس اول السطر
الرد }}}
تم الشكر بواسطة: عابر سبيل 2 , عابر سبيل 2
#7
(30-08-18, 05:55 PM)dubai.eig كتب :
(30-08-18, 05:40 PM)عابر سبيل 2 كتب :
(30-08-18, 05:13 PM)dubai.eig كتب :
(30-08-18, 04:09 PM)عابر سبيل 2 كتب :
(30-08-18, 03:44 PM)dubai.eig كتب : جميل جدا بارك الله فيك

الحمدالله ضبط

بس باقي شي واحد 

الان يطلع كذا



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


الكود الي عندي هذا

كود :
  If txtReceived.Text.Substring(0, 2) = "FA" Then


           MsgBox(FRQ)

       ElseIf txtReceived.Text.Substring(0, 2) = "FB" Then
 
           MsgBox(FRQ)
 End If


غير شغال




جربت هذا الكود

كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
         

       ElseIf txtReceived.Text.Contains("FB") Then
           MsgBox(FRQ)
 End If


اشتغل على If txtReceived.Text.Contains("FA") Then فقط وما قراء الثاني
FB



وبارك الله فيك وشكرا على وقتك ومجهودك


جرب هذه الطريقة
PHP كود :
Dim arr() As String
arr 
Regex.Matches(receivedData"(?<=\w+)\d+?(?=;)").
 
     Cast(Of Match).Select(Function(As Matchx.Value).ToArray 
ستحصل على مصفوفة فيها الأرقام فقط


وهذا كامل الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String
arr = Regex.Matches(receivedData, "(?<=\w+)\d+?(?=;)").
      Cast(Of Match).Select(Function(x As Match) x.Value).ToArray

For Each a As String In arr
    MsgBox(a)
Next 



شغلك جميل بارك الله فيك

بس الان لان عندي اكثر من عمليه في نفس الوقت وفي المربع يطلع

;FA14070795
;FB07077845
;MD0C


علشان كذا اريد اوضح  اقول للكود في حالت حصلت اول حرفين

FA

او

FB
او
MD

لكل حرفين اريد اعمل عمليه

ان شاءالله قدرة اوصل الفكرة

وشكرا من جديد


جرب هذا الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String = receivedData.ToString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
For Each a As String In arr
    Select Case a.Substring(0, 2)

        Case "FA"
            MsgBox("---FA---")

        Case "FB"
            MsgBox("---FB---")

        Case "MD"
            MsgBox("---MD---")

    End Select
Next 



تعبتك معاي بارك الله فيك

مع الاسف نفس الشي




يقراء بس اول السطر


يبدو أنك اقتطعت جزء من كود مشاركتي الأخير واستخدمته على مربع النص
لهذا لم تصل إلى النتيجة المطلوبة

لاحظ أنني استخدمت الطريقة على ReceiveSerialData وليس على مربع النص

استخدم كود مشاركتي كاملا ثم أخبرني بالنتيجة
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig
#8
كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
       

      Else
If txtReceived2.Text.Contains("FB") Then
          MsgBox(FRQ)
End If
ربما يعمل هذا بكل بساطة
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig
#9
(30-08-18, 06:15 PM)عابر سبيل 2 كتب :
(30-08-18, 05:55 PM)dubai.eig كتب :
(30-08-18, 05:40 PM)عابر سبيل 2 كتب :
(30-08-18, 05:13 PM)dubai.eig كتب :
(30-08-18, 04:09 PM)عابر سبيل 2 كتب : جرب هذه الطريقة
PHP كود :
Dim arr() As String
arr 
Regex.Matches(receivedData"(?<=\w+)\d+?(?=;)").
 
     Cast(Of Match).Select(Function(As Matchx.Value).ToArray 
ستحصل على مصفوفة فيها الأرقام فقط


وهذا كامل الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String
arr = Regex.Matches(receivedData, "(?<=\w+)\d+?(?=;)").
      Cast(Of Match).Select(Function(x As Match) x.Value).ToArray

For Each a As String In arr
    MsgBox(a)
Next 



شغلك جميل بارك الله فيك

بس الان لان عندي اكثر من عمليه في نفس الوقت وفي المربع يطلع

;FA14070795
;FB07077845
;MD0C


علشان كذا اريد اوضح  اقول للكود في حالت حصلت اول حرفين

FA

او

FB
او
MD

لكل حرفين اريد اعمل عمليه

ان شاءالله قدرة اوصل الفكرة

وشكرا من جديد


جرب هذا الكود
PHP كود :
'هنا استقبل اكلام 
Dim receivedData As String = ""
receivedData = ReceiveSerialData()

Dim arr() As String = receivedData.ToString.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
For Each a As String In arr
    Select Case a.Substring(0, 2)

        Case "FA"
            MsgBox("---FA---")

        Case "FB"
            MsgBox("---FB---")

        Case "MD"
            MsgBox("---MD---")

    End Select
Next 



تعبتك معاي بارك الله فيك

مع الاسف نفس الشي




يقراء بس اول السطر


يبدو أنك اقتطعت جزء من كود مشاركتي الأخير واستخدمته على مربع النص
لهذا لم تصل إلى النتيجة المطلوبة

لاحظ أنني استخدمت الطريقة على ReceiveSerialData وليس على مربع النص

استخدم كود مشاركتي كاملا ثم أخبرني بالنتيجة


كلامك صحيح 

فعلا الكود شغال والحمدالله  Rolleyes 

شكرا لك وبارك الله في مجهودك

شكرا من جديد

تسم والله ما قصرة واعتذر  Rolleyes

(30-08-18, 06:27 PM)anoname كتب :
كود :
If txtReceived.Text.Contains("FA") Then

MsgBox(FRQ)
       

      Else
If txtReceived2.Text.Contains("FB") Then
          MsgBox(FRQ)
End If
ربما يعمل هذا بكل بساطة



شكرا على متابعتك تم حل الموضوع والحمدالله شكرا لك
الرد }}}
تم الشكر بواسطة: عابر سبيل 2
#10
الاخ عابر سبيل 2
قدم مجهود اكثر من رائع فى هذا الموضع
فبارك الله له فيما يقدمه من نفع

وتحياتى له ولك
وتمنياتى لكم التوفيق الدائم
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: dubai.eig , عابر سبيل 2



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


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