المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
السلام عليكم ورحمة الله
عندي 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
بارك الله فيكم وشكرا لكم
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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
وبارك الله فيك وشكرا على وقتك ومجهودك
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
وعليكم السلام ورحمة الله وبركاته
فى البداية ساقول ان لديك فى الفورم 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;
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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(x As Match) x.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
لكل حرفين اريد اعمل عمليه
ان شاءالله قدرة اوصل الفكرة
وشكرا من جديد
المشاركات : 50
المواضيع 1
الإنتساب : Aug 2018
السمعة :
20
الشكر: 170
تم شكره 209 مرات في 93 مشاركات
(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(x As Match) x.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
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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(x As Match) x.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
تعبتك معاي بارك الله فيك
مع الاسف نفس الشي
يقراء بس اول السطر
المشاركات : 50
المواضيع 1
الإنتساب : Aug 2018
السمعة :
20
الشكر: 170
تم شكره 209 مرات في 93 مشاركات
(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(x As Match) x.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 وليس على مربع النص
استخدم كود مشاركتي كاملا ثم أخبرني بالنتيجة
المشاركات : 41
المواضيع 6
الإنتساب : Jul 2017
السمعة :
1
الشكر: 12
تم شكره 32 مرات في 22 مشاركات
كود :
If txtReceived.Text.Contains("FA") Then
MsgBox(FRQ)
Else
If txtReceived2.Text.Contains("FB") Then
MsgBox(FRQ)
End If
ربما يعمل هذا بكل بساطة
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
30-08-18, 06:42 PM
(آخر تعديل لهذه المشاركة : 30-08-18, 06:43 PM {2} بواسطة dubai.eig.)
(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(x As Match) x.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 وليس على مربع النص
استخدم كود مشاركتي كاملا ثم أخبرني بالنتيجة
كلامك صحيح
فعلا الكود شغال والحمدالله
شكرا لك وبارك الله في مجهودك
شكرا من جديد
تسم والله ما قصرة واعتذر
(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
ربما يعمل هذا بكل بساطة
شكرا على متابعتك تم حل الموضوع والحمدالله شكرا لك
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
الاخ عابر سبيل 2
قدم مجهود اكثر من رائع فى هذا الموضع
فبارك الله له فيما يقدمه من نفع
وتحياتى له ولك
وتمنياتى لكم التوفيق الدائم
|