منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مشكلة استخرج رقم من نص - نسخة قابلة للطباعة

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



مشكلة استخرج رقم من نص - mrfenix93 - 28-02-23

السلام عليكم لدي مشكلة في استخراج رقم من نص

اقوم بجلب القرائة من ميزان و تكون القرائة كالأتي

كود :
G 122.50 kg

G 171.50 kg

وعند استخدام الكود 

كود :
Public Function GetNumber(ByVal text As String) As Double
       Dim rval As String = String.Empty
       Dim coll As MatchCollection = Regex.Matches(text, "\d+")
       For Each a As Match In coll
           rval += a.ToString
       Next
       Return Convert.ToInt64(rval)
   End Function


تظهر النتيجة

كود :
12250

17150

دون استخدام الأرقام بعد العلامة العشرية 


فتكون النتيجة خطأ احتاج المساعدة


RE: مشكلة استخرج رقم من نص - Taha Okla - 01-03-23

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

هذا  الكود : 
كود :
   Public Function GetNumber(ByVal text As String) As String
       Dim rval As String = String.Empty
       Dim coll As MatchCollection = Regex.Matches(text, "\d+.")
       For Each a As Match In coll
           rval += a.ToString
       Next
       Return rval
   End Function


أو استخدم هذا  :

كود :
Public Function GetNumber(ByVal text As String) As Double
   If Len(text) = 0 Then
       Return 0
   Else
       Dim strN As String = ""

       For i = 1 To text.Length
           Dim S1 As String = Mid(text, i, 1)
           If (Asc(S1) >= 48 And Asc(S1) <= 56) Or Asc(S1) = 46 Then
               strN &= S1
           End If
       Next

       Return strN
   End If
End Function