البرمجة

تحسين تكرار الأوامر في Visual Basic

في البداية، يظهر أن لديك كودًا مكتوبًا بلغة Visual Basic يقوم بفتح ملف دفعي (batch file) باستخدام أمر “ping”. تريد القدرة على تحديد كم مرة يتم تشغيل الأمر. سأساعدك في تحقيق ذلك.

لتحقيق هذا الهدف، يمكنك إضافة TextBox إضافي يدعى “TextBox3” للحصول على عدد المرات التي ترغب في تكرار الأمر فيها. يمكنك ثم استخدام هذا العدد في حلقة تكرار لتشغيل الأمر بناءً على العدد الذي تم إدخاله في “TextBox3”.

فيما يلي تعديل لكودك:

vb
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' التحقق من أن TextBox3 يحتوي على قيمة صحيحة Dim repeatCount As Integer If Integer.TryParse(TextBox3.Text, repeatCount) AndAlso repeatCount >= 1 AndAlso repeatCount <= 100 Then ' حلقة تكرار لتكرار الأمر حسب العدد المدخل في TextBox3 For i As Integer = 1 To repeatCount Dim command As String command = "ping " + "-l " + TextBox2.Text + " /t " + TextBox1.Text Shell("cmd.exe /k" & command, 0) Next Else ' إشعار في حالة إدخال قيمة غير صحيحة في TextBox3 MessageBox.Show("الرجاء إدخال قيمة صحيحة بين 1 و 100 في TextBox3.", "خطأ") End If End Sub

هذا التعديل يقوم بفحص ما إذا كانت قيمة في TextBox3 هي عدد صحيح بين 1 و 100. في حالة إدخال قيمة غير صحيحة، سيظهر إشعار. إذا كانت القيمة صحيحة، سيتم تكرار الأمر حسب العدد المحدد في TextBox3.

المزيد من المعلومات

لفهم أفضل حول كيفية تحسين الكود وجعله أكثر إتقاناً، يمكننا النظر في بعض النقاط الأخرى التي يمكن تحسينها:

  1. التعامل مع الأخطاء:

    • يمكن أن يتسبب تحديد قيمة غير صحيحة في TextBox3 في حدوث أخطاء. يفضل أن تتم معالجة هذه الحالة وعرض رسالة خطأ للمستخدم لتوضيح الخطأ وتوجيهه على كيفية تصحيحه.
  2. التفاعل مع المستخدم:

    • يمكن إضافة تقرير إلى المستخدم بعد انتهاء التكرار، مثل عرض رسالة تفيد بأن الأمر تم تكراره بنجاح.
  3. فحص صحة البيانات:

    • قد يكون من الجيد أن تتحقق من صحة البيانات المدخلة في TextBox1 وTextBox2 أيضًا، وتضيف التحقق من أنها ليست فارغة وأنها تحتوي على قيم صحيحة.
  4. استخدام StringBuilder لبناء الأمر:

    • في حالة كتابة أوامر طويلة أو معقدة، قد يكون من الجيد استخدام StringBuilder لبناء السلسلة بدلاً من استخدام العمليات المتكررة للإرتباط بين النصوص.
  5. تفادي استخدام Shell:

    • استخدام Shell لتشغيل الأوامر قد يكون مفيدًا، ولكن يمكن أن يكون هناك أساليب أخرى توفر المزيد من التحكم والمرونة. يمكن استخدام Process.Start بدلاً من ذلك.

فيما يلي تعديل للكود بناءً على النقاط المذكورة:

vb
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Not String.IsNullOrWhiteSpace(TextBox1.Text) AndAlso Not String.IsNullOrWhiteSpace(TextBox2.Text) Then If Integer.TryParse(TextBox3.Text, repeatCount) AndAlso repeatCount >= 1 AndAlso repeatCount <= 100 Then Dim commandBuilder As New StringBuilder() commandBuilder.Append("ping ") commandBuilder.Append("-l ").Append(TextBox2.Text).Append(" /t ").Append(TextBox1.Text) For i As Integer = 1 To repeatCount Process.Start("cmd.exe", "/k " & commandBuilder.ToString()) Next MessageBox.Show($"تم تكرار الأمر بنجاح {repeatCount} مرة.", "نجاح") Else MessageBox.Show("الرجاء إدخال قيمة صحيحة بين 1 و 100 في TextBox3.", "خطأ") End If Else MessageBox.Show("الرجاء ملء جميع الحقول.", "خطأ") End If End Sub

يتضمن هذا التعديل بعض التحسينات في التعامل مع الأخطاء وتقديم تقارير إضافية للمستخدم، بالإضافة إلى استخدام StringBuilder لبناء الأمر واستخدام Process.Start بدلاً من Shell.

زر الذهاب إلى الأعلى