السلام عليكم إخوتي
كل عام وأنتم بألف خير
طلب بسيط لو سمحتم : أحتاج إلى تحويل كود من c# إلى vb.net , لقد حاولت التعديل عليه ولاكن تظهر لي بعض الأخطاء فأرجو المساعدة.
الكود:
private void Form1_Load(object sender, EventArgs e)
{
List<string> values = new List<string>();
for (char ch1 = 'a'; ch1 <= 'z'; ch1++)
for (char ch2 = 'a'; ch2 <= 'z'; ch2++)
for (char ch3 = 'a'; ch3 <= 'z'; ch3++)
values.Add(ch1.ToString() +
ch2.ToString() + ch3.ToString());
lstCombinations.DataSource = values;
lblCombinations.Text = values.Count + " combinations";
}
قد يضهر لديك الكود مقلوب : إنسخ الكود وضعه في ملف txt
عفواً أخي الكود به أخطاء
1- لقد نسيت إغلاق الدائرة الحلقية بإضافة كلمة next
عند الإضافة واجهت مشكلة في السطر الأخير
ياريت التعديل على الكود وقم بالتجربة ثم أرسله
مشكور جداً أخي على الرد وكل عام وأنت بألف خير
عدلت على الكود بهذه الطريقة
Dim values As New List(Of String)
For ch1 = Asc("a") To Asc("z")
For ch2 = Asc("a") To Asc("z")
For ch3 = Asc("a") To Asc("z")
values.Add(Chr(ch1).ToString() + Chr(ch2).ToString() + Chr(ch3).ToString())
Next
Next
Next
lstCombinations.DataSource = values
lblCombinations.Text = values.Count
لاكن أحتاج لطريقة لحفظ الناتج في ملف txt مباشرة دون إظهارها في أداة ListBox
أرجو المساعدة
تفضل اخى الحبيب الكود بصورة صحيحة
داخل حدث Form1_Load
ضع الكود التالى
كود :
Dim values As List(Of String) = New List(Of String)()
For Each ch1 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
For Each ch2 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
For Each ch3 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
values.Add(ch1.ToString() & ch2.ToString() & ch3.ToString())
Next
Next
Next
lstCombinations.DataSource = values
lblCombinations.Text = values.Count & " combinations"
تذكر كل ما عليك وضع اداء lstCombinations
اى كانت هى والتى تاخذ اسم lstCombinations وبكده الكود سيعمل معك بدون اى مشكلة
تم عمل الكود ليعرض احرف من A الى Z
واذا كنت تريدها ارقام استخدم الكود التالى
كود :
Dim values As List(Of String) = New List(Of String)()
For ch1 = Asc("a") To Asc("z")
For ch2 = Asc("a") To Asc("z")
For ch3 = Asc("a") To Asc("z")
values.Add(ch1.ToString() & ch2.ToString() & ch3.ToString())
Next
Next
Next
lstCombinations.DataSource = values
lblCombinations.Text = values.Count & " combinations"
تحياتى لك
وتمنياتى لك التوفيق
مشكور جداً أخي على المساعدة ، في الحقيقة كود رائع
Dim values As List(Of String) = New List(Of String)()
For Each ch1 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
For Each ch2 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
For Each ch3 In "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
values.Add(ch1.ToString() & ch2.ToString() & ch3.ToString())
Next
Next
Next
lstCombinations.DataSource = values
lblCombinations.Text = values.Count & " combinations"
لدي بعض التسؤولات البسيطة التي لاتصعب عليكم
1-هل من طريقة لحفظ الكود مباشرة داخل ملف txt ,وهل من طريقة لإيقاف وإستكمال الكود
2-تعديل الكود ليبدأ من قيمة وينتهي عند قيمة محددة مثل البدء من afb aac
3-كود بسيط لمعرفة النسبه المؤوية للعملية الجارية.
شاكر حسن تعاونكم ولكم كل الشكر.
(20-08-18, 10:37 PM)sads كتب : [ -> ]لدي بعض التسؤولات البسيطة التي لاتصعب عليكم
1-هل من طريقة لحفظ الكود مباشرة داخل ملف txt ,وهل من طريقة لإيقاف وإستكمال الكود
2-تعديل الكود ليبدأ من قيمة وينتهي عند قيمة محددة مثل البدء من afb aac
3-كود بسيط لمعرفة النسبه المؤوية للعملية الجارية.
شاكر حسن تعاونكم ولكم كل الشكر.
الشكر لله
بخصوص اجابة كل سؤال
1- نعم يوجد طريقة لحفظ نتائج المستخرجة من الكود فى ملف Text وسبق وقمت بشرح بالعديد من المواضيع من قبل
وبخصوص ايقاف وتشغيل الكود يمكنك وضع رسالة تنبيه بعد عدد معين لتظهر بان تريد الاستكمال ام لا وكذلك يمكن من خلال طريقة اخى
مثل شرط تحقق اذا كان يقمة ii = 1 يقوم بظهور رسالة الاستكمال او لا أو الغاء عملية توليد الاحرف
بحث المقصود بـ ii هو سطر يوضع قبل For بهذا الشكل
كود :
Dim ii As Integer = 0
وكل ما عليك عمل زر يقوم بعمل ايقاف ليجعل قيمة ii = 1
2- بخصوص انه يبداء عند احرف محددة يمكن ذلك ولكن الكود يحتاج الى بعض الوقت
قد اعود فى وقت لاحك يمكنك فتح البرنامج وعمل كود والتاكد من انه يعمل تماما قبل وضع كود قد لا يعمل معك
أو ان يفيدك من يطلع على الموضوع من الاخوى الاخري اذا لديهم بعض الوقت لذلك
3- كل الفكرة انك ستحتاج الى جلب اجمالى عدد العملية التى تتم من ثم عمل قيمة تقوم باضافة +1 فى كل خطوة من العملية
وليكن العملية تتم فى حدود العد 1547772 مثلاً وانت عملت قيمة من نوع رقم وقيمتها الافتراضية 0
وكل ما عليك تمرير هذا داخل قلب الحدث لـ For مثل وليكن i+=1
وكل ما سيتم هو عمل هذه المعادلة
القيمة التى تتزايد / القيمة الكلية عدد العمليات * 100 || ليصبح الناتج بالنهاية هو النسبة المؤوية المطلوبة
اتمنى ان تكون الفكرة وصلت لك كاملاً
وان الشرح مبسط لكل ما طرحته من اسئلة
تحياتى لك
وتمنياتى لك التوفيق
شكراً أخي { elgokr } على الرد ومن الوقت التي تستغرقة في إفادة الغير فأرجو الله العلي القدير أن يزيد من العلم نوراً
[b]أخي أنا في إنتظار كودك الكامل بكل التسؤلات المطروحة والتي تطرقت لها في شرحك.[/b]
[b]أرجو الرد في أسرع وقت [/b]
[b]ولك كل الشكر ولكل شخص قام بالرد علي.[/b]
الشكر لله
ان شاء الله مع اول فرصة تتاح لى ذلك
ساقوم بعمل الكود ووضعه لك
كل عام وانت بخير
وعيد سعيد عليك وعلى الجميع
تحياتى لك
وتمنياتى لك التوفيق
السلام عليكم ورحمة الله وبركاته
اهلاً بك من جديد اخى sads
اتمنى ان اكون ان وفيت وعدى بما طلبته من اسئلة مسبقاً
وهو من خلال اتمام عمل سورس كود بالكود بعد التحويل
وعمل اللمسات والاضافات التى تم السؤال عنها
فى البدابة كل عام وانت بخير وعيد سعيد عليك وعلى الجميع
السورس + البرنامج للمعينة مرفق بالرد
السورس (2015)
صورة للبرنامج
الكود المستخدم فى الفروم كاملاً (الكود يحمل الشرح باذن الله)
كود :
Public Class Form1
Private i, ii As Integer
Private abc As String = "abcdefghijklmnopqrstuvwxyz"
Private Sub TextBox_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress
REM الكود هنا لجعل الكتابة احرف فقط
If Not (Asc(e.KeyChar) = 8) Then
Dim allowedChars As String = abc
If Not allowedChars.Contains(e.KeyChar.ToString.ToLower) Then
e.KeyChar = ChrW(0)
e.Handled = True
End If
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
REM كود التحقق بعدد احرف النص
If TextBox1.TextLength < 3 OrElse TextBox2.TextLength < 3 Then
MsgBox("The Minimum Number Of Characters is 3 Letters.")
Exit Sub
End If
REM القيم الافتراضية عند اتمام توليد المفاتيح
i = 0
ii = 0
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = Val(abc.Length * abc.Length * abc.Length)
ProgressBar1.Value = 0
Label6.Text = 0
Button1.Enabled = False
TextBox3.Text = Nothing
Label3.Text = "Not Finished"
Label3.ForeColor = Color.Red
Button2.Enabled = False
REM رسالة تاكيد باتمام بدء عملية توليد المفاتيح
Dim result As Integer = MessageBox.Show("Do you want to start the process of generating keys?", "Confirm The Start Process...", MessageBoxButtons.OKCancel)
REM التحقق بالموافقة على الرسالة او الغاء الامر
If result = DialogResult.Cancel Then
Button1.Enabled = True
Label3.Text = "Ready"
Label3.ForeColor = Color.Blue
Exit Sub
End If
REM كود توليد المفاتيح المكون من 3 احرف
For Each ch1 In abc.ToCharArray()
For Each ch2 In abc.ToCharArray()
For Each ch3 In abc.ToCharArray()
ProgressBar1.Value += +1
If (ch1.ToString() & ch2.ToString() & ch3.ToString()) = TextBox1.Text Then i = 1
If i = 1 Then
TextBox3.Text += (ch1.ToString() & ch2.ToString() & ch3.ToString()) & ", "
ii += 1
If (ch1.ToString() & ch2.ToString() & ch3.ToString()) = TextBox2.Text Then i = 0
End If
Next
Next
REM التحقق من اتمام توليد اجمالى 3 احرف كاملاً
If ProgressBar1.Value = ProgressBar1.Maximum Then
Button1.Enabled = True
Label3.Text = "Finished"
Label3.ForeColor = Color.Green
Button2.Enabled = True
End If
Next
REM اجمالى عدد المفاتيح التى تم انشائها فعلياً
Label6.Text = ii
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
REM كود استبدال الفاصلة بسطر جديد تم انشاء الفكرة ليمكنك استخدامها مستقبلياً
Dim SaveText As String = TextBox3.Text.Replace(", ", vbNewLine)
REM تحديد مسار واسم الملف المطلوب حفظه
Dim SelectPath As New SaveFileDialog()
SelectPath.Filter = "Text Files (*.txt)|*.txt"
SelectPath.FileName = ""
SelectPath.FilterIndex = 2
SelectPath.RestoreDirectory = True
REM كود التحقق بتحديد المسار لاتمام حفظ واستخراج المفاتيح بالملف
If SelectPath.ShowDialog() = DialogResult.OK Then
My.Computer.FileSystem.WriteAllText(SelectPath.FileName, SaveText, True)
End If
End Sub
End Class
اتمنى ان يكون الكود بسيط والشرح بداخله وافي بان تكون على علم
لما يتم استخدام كل جزء من الكود وان الامر ليس به اى تعقيد
تم انشاء موضوع بهذا السورس حتى يعم الفائدة على الجميع
تحياتى لك
وتمنياتى لك التوفيق
ألف شكر لك أخي elgokr في الحقيقة أنت مبدع وقد وفيت بوعدك لي بما طلبته من اسئلة، الشرح كان رائع جداً والكود واضح بما فيه كفايه ، اللهم إجعل هذا العمل في ميزان حسناتك لما قدمته من مساعدة لي وللغير.
فكل عام وأنت والجميع بألف خير
الشكر لله والحمد لله
هذا يسعدنى ان ما قمت به هو المطلوب الكامل
تحياتى لك
وتمنياتى لك التوفيق