الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل نص إلى رقم

مغلق
بدأه ym2ponline في 13 يونيو 2007 · 6 رد · 666 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الموضوع باختصار شديد

انا عندي نص وعاوز أحوله لرقم بس النص ده محطوط بين علامتين تنصيص

مثال

"2*2+3*4"

هذه قيمة متغير بداخل الكود

وأريد أن أحصل على نتيجة هذه العملية الحسابية

وجزاكم الله كل الخير

#3

جزاك الله كل الخير للرد

ولكن ليس هذا المقصود

لأن القيمة متغيرة وليست قيمة ثابتة

فيمكن ان تكون

"3*5+2*4+3*6"

وانا طبعا مش هاقدر احصر كل الاحتمالات

أرجو ان يكون السؤال واضح

#4

واضح جداا ..

سأحاول عمل مثال قبل ما أنام

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 14 يونيو 2007 في 11:59

#5

انت خلتني أفوق وما أنمش لإن الشفرة مرهقة شوية ..

أولويات العمليات الحسابية في الشفرة التالية ..

الضرب والقسمة .. ثم الجمع والطرح

بمعني إن :

calc.jpg

Option Base 1
Private Sub Command1_Click()
 Dim op(4) As String, s As String
 Dim num() As String
 Dim opPos() As Integer

 Dim pos As Integer, i As Integer, x As Integer, c As Integer
 Dim sTemp  As String, cnt As Integer

 op(1) = "+": op(2) = "-"
 op(3) = "*": op(4) = "/"
 sTemp = Text1.Text

Start:
cnt = 0
pos = 1

For x = 1 To Len(sTemp)
	For i = 1 To 4
		If Mid(sTemp, x, 1) = op(i) Then
		   cnt = cnt + 2
		   ReDim Preserve num(cnt)

			  num(cnt - 1) = Mid(sTemp, pos, x - 1)
			  num(cnt) = Mid(sTemp, x, 1)
			  sTemp = Mid(sTemp, x + 1)
			  x = 1
		   Exit For
		End If
	Next
Next


ReDim Preserve num(cnt + 1)
 num(cnt + 1) = sTemp

For i = 2 To UBound(num) Step 2
	If num(i) = "*" Or num(i) = "/" Then
	   If num(i) = "*" Then
		  res = Val(num(i - 1)) * Val(num(i + 1))
	   ElseIf num(i) = "/" Then
		  res = Val(num(i - 1)) / Val(num(i + 1))
	   End If
	   num(i - 1) = "": num(i + 1) = "": num(i) = res
	   sTemp = ""
	   For c = 1 To UBound(num)
		  sTemp = sTemp & num(c)
	   Next
	   GoTo Start
	End If
Next

 For i = 2 To UBound(num) Step 2
	If num(i) = "+" Or num(i) = "-" Then
	   If num(i) = "+" Then
		  res = Val(num(i - 1)) + Val(num(i + 1))
	   ElseIf num(i) = "-" Then
		  res = Val(num(i - 1)) - Val(num(i + 1))
	   End If
	   num(i - 1) = "": num(i + 1) = "": num(i) = res
	   sTemp = ""
	   For c = 1 To UBound(num)
		  sTemp = sTemp & num(c)
	   Next
	   GoTo Start
	End If
Next
 MsgBox "Result = " & num(1)
End Sub

frm.rar

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 14 يونيو 2007 في 16:11

#6

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

الأخ

Pharaonic_Guy

هو ده فعلا اللي انا كنت محتاجه

وجزاك الله كل الخير ولك جزيل الشكر

#7

طيب كويس والله إنها جات من أول مرة ..

وتشكر علي الدعوة الجميلة ..

هذا الموضوع مغلق.

مواضيع مشابهة