منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] استفسار بخصوص البحث في RichTextBox SerialPort - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] استفسار بخصوص البحث في RichTextBox SerialPort (/showthread.php?tid=53618)



استفسار بخصوص البحث في RichTextBox SerialPort - dubai.eig - 17-06-25

السلام عليكم ورحمة الله

لدي برنامج SerialPort1
اقوم بارسال رمز ويرجع لي الجواب 
في RichTextBox2


كود :
   Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
       ReceivedText(SerialPort1.ReadExisting())
   End Sub

   Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting
       If Me.RichTextBox2.InvokeRequired Then
           Dim x As New SetTextCallback(AddressOf ReceivedText)
           Me.Invoke(x, New Object() {(text)})
       Else
           Me.RichTextBox2.Text &= [text] 'append text
       End If
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click


       SerialPort1.Write("ATCAF0" & vbCr)
       Thread.Sleep(3000)
       SerialPort1.Write("ATSH7E0" & vbCr)
       Thread.Sleep(3000)
       SerialPort1.Write("021A90" & vbCr)




   End Sub


مثل ما باين اقوم بارسال رموز ويرجع لي الاجابه 

كود :
>OK

>OK

>10135A903347434E
2159394546364D47
22313237383534AA


في الاجابه في RichTextBox2

بعد الانتهاء من العمليه اريد ابحث عن اول اربع ارقام اذا كانت موجوده 1013

اذا كانت موجوده انسخهم في مربع حوار اخر RichTextBox3 
ثلاث اسطر اجعلهم سطر واحد 


كود :
>10135A903347434E2159394546364D4722313237383534AA

في RichTextBox3 


اتمنى اكون قدرة اوصل الفكرة

وشكرا لكم 


RE: استفسار بخصوص البحث في RichTextBox SerialPort - Zuhare - 18-06-25

كود :
   Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
       'ReceivedText(SerialPort1.ReadExisting())
       Dim r = SerialPort1.ReadExisting()
       Dim t = Regex.Match(r, ">1013[\w\d]+").Value
       t = t.Replace(vbCrLf, "").Replace(vbCr, "").Replace(vbLf, "")
       Me.RichTextBox3.Text = t
   End Sub



RE: استفسار بخصوص البحث في RichTextBox SerialPort - dubai.eig - 18-06-25

اشكرك استاذي
قمت بتجربة الكود ولكن طلع معاي مشكله

كود :
System.InvalidOperationException: 'Cross-thread operation not valid: Control 'RichTextBox3' accessed from a thread other than the thread it was created on.'

تم حل الموضوع
شكرا الكود هو المطلوب

شكرا من جديد