السلام عليكم ورحمة الله وبركاته
الموضوع باختصار شديد
انا عندي نص وعاوز أحوله لرقم بس النص ده محطوط بين علامتين تنصيص
مثال
"2*2+3*4"
هذه قيمة متغير بداخل الكود
وأريد أن أحصل على نتيجة هذه العملية الحسابية
وجزاكم الله كل الخير
السلام عليكم ورحمة الله وبركاته
الموضوع باختصار شديد
انا عندي نص وعاوز أحوله لرقم بس النص ده محطوط بين علامتين تنصيص
مثال
"2*2+3*4"
هذه قيمة متغير بداخل الكود
وأريد أن أحصل على نتيجة هذه العملية الحسابية
وجزاكم الله كل الخير
أرجو أن هذا ما تريد
اقتباسIf A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut
Albert Einstein
جزاك الله كل الخير للرد
ولكن ليس هذا المقصود
لأن القيمة متغيرة وليست قيمة ثابتة
فيمكن ان تكون
"3*5+2*4+3*6"
وانا طبعا مش هاقدر احصر كل الاحتمالات
أرجو ان يكون السؤال واضح
واضح جداا ..
سأحاول عمل مثال قبل ما أنام
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 14 يونيو 2007 في 11:59
انت خلتني أفوق وما أنمش لإن الشفرة مرهقة شوية ..
أولويات العمليات الحسابية في الشفرة التالية ..
الضرب والقسمة .. ثم الجمع والطرح
بمعني إن :

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
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 14 يونيو 2007 في 16:11
السلام عليكم ورحمة الله وبركاته
الأخ
Pharaonic_Guy
هو ده فعلا اللي انا كنت محتاجه
وجزاك الله كل الخير ولك جزيل الشكر
هذا الموضوع مغلق.