منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : زيادة رقم بشروط خاصة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لدي سترينج عبارة عن :
1.0.0.0
ما اريده هو في كل مرة اضغط علي الزر يقوم بتزويد رقم عليهم مثل
1.0.0.1
1.0.0.2
1.0.0.3
وهكذا لحد ما يوصل لرقم 9 مثل
1.0.0.9
يبقا كدا عندما اضغط الزر يقوم بزيادة الرقم التالي مثل
1.0.0.9
يصبح
1.0.1.0
وهكذا
يعني في كل مرة يزود رقم لحد ما يوصل لرقم
9.9.9.9
طبعا الزيادة تتم فقط عند الضغط علي الزر
ما هو افضل كود لفعل ذلك
لان بشروط if هيكون كود طويل ومعقد لذا ابحث عن طريقة اسهل وافضل
افضل طريقة واسهلها وقد تكون الابسط فى التعامل
هو فى حدث الزر تقوم بالتالى
اولاً حذف . بين الارقام ليصبح الرقم 1000
ثانياً ستقوم بعملة الجمع 1000+1
ثالثاً استرجاع . مجدداً ليصبح الناتج 1001
السلام عليكم ورحمة الله وبركاته
اخي الكريم هذه بطريقة الـ If وهي ليست معقدة كما تقول  وقد جربتها حتى الرقم 9999 وبعدها يتم التصفير من جديد 
الكود عبارة عن جمل if متداخلة
كود :
  Dim aa As Integer = 0
   Dim bb As Integer = 0
   Dim cc As Integer = 0
   Dim dd As Integer = 1
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       aa += 1
       If aa = 10 Then
           aa = 0
           bb += 1
           If bb = 10 Then
               bb = 0
               cc += 1
               If cc = 10 Then
                   cc = 0
                   dd += 1
                   If dd = 10 Then
                       dd = 0 ' هنا يتم التصفير والاعادة من جديد
                   Else
                       dd += 1
                   End If
               End If
           End If
       End If
       TextBox1.Text = dd & "." & cc & "." & bb & "." & aa
   End Sub
أعتقد أن الكود الأسهل هو :

كود :
    Dim S As Single
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        S += 0.001
        If S >= 10 Then S = 0.000
        TextBox1.Text = S.ToString("0.0@0@0").Replace("@", ".")
    End Sub
بارك الله فيك اخ سامي 
فعلا اسهل وطريقة ابداعية حقا
(27-06-20, 12:31 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
اخي الكريم هذه بطريقة الـ If وهي ليست معقدة كما تقول  وقد جربتها حتى الرقم 9999 وبعدها يتم التصفير من جديد 
الكود عبارة عن جمل if متداخلة
كود :
  Dim aa As Integer = 0
   Dim bb As Integer = 0
   Dim cc As Integer = 0
   Dim dd As Integer = 1
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       aa += 1
       If aa = 10 Then
           aa = 0
           bb += 1
           If bb = 10 Then
               bb = 0
               cc += 1
               If cc = 10 Then
                   cc = 0
                   dd += 1
                   If dd = 10 Then
                       dd = 0 ' هنا يتم التصفير والاعادة من جديد
                   Else
                       dd += 1
                   End If
               End If
           End If
       End If
       TextBox1.Text = dd & "." & cc & "." & bb & "." & aa
   End Sub

ممتاز يعمل بنجاح ولكن كنت اتمني الابتعاد عن شروط if اعتقدت انه يوجد طريقة اسهل من الشروط ولكن تسلم ايدك علي كل شئ

(27-06-20, 12:53 PM)سامي محمد كتب : [ -> ]أعتقد أن الكود الأسهل هو :

كود :
    Dim S As Single
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        S += 0.001
        If S >= 10 Then S = 0.000
        TextBox1.Text = S.ToString("0.0@0@0").Replace("@", ".")
    End Sub

ممتاز جدا ولكن كيف هيتم ادخل الرقم 1.0.0.0 ل Single
لايمكن استخدام اكثر من نقطة واحدة في المتغيرات العشرية ..... ولكن أحفظها كقيمة نصية String
(02-07-20, 01:02 AM)سامي محمد كتب : [ -> ]لايمكن استخدام اكثر من نقطة واحدة في المتغيرات العشرية ..... ولكن أحفظها كقيمة نصية String

ممكن مثال علي
dim x as string = "1.0.0.1"
تفضل اخوي

الكود التالي يحتوي على طريقتين لعمل النتيجة التي تريدها 

كود :
    Dim myMaxNum As Integer = 0

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        myMaxNum += 1
        Label1.Text = Format(myMaxNum, "0\,0\,0\,0")

        ' او يمكنك استخدام السطر التالي
        'فقط قم يتعليق السطر قبل السابق

        'Label1.Text = myMaxNum.ToString("0\,0\,0\,0")


    End Sub