تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] توليد احرف لعدد خانات معين
#1
السلام عليكم
انا استعمل الكود هاد لتوليد احرف من عدد خانات محدد
Textbox1 يضل فارغ
textbox2 لتحديد عدد الخانات
سيتم حفظ توليد الاحرف في ملف "D:\aTOz.txt"
الكود شغال لكن عندما اريد توليد احرف من 5 خانات او اكثر
يحتاج الى ساعةو نصف لتوليد 5 خانات
كيف ممكن اني اذا فصل جهاز الكمبيوتر اني اكمل من
مكان ما وقف البرنامج
ما يرجع يعيد من البداية
لان البرنامج يقوم بتوليد احرف من a - z
ثم من aa - zz
ثم من aaa - zzz
وهكذا حسب عدد الخانات المطلوبة
محتاج كود اني اخلي البرنامج يبدا من مكان معين
وينتهي في مكان معين
لو افترضنا ان textbox2.text = 3
رح يبدا من  a -zzz
ثم يتوقف
انا محتاج اني اخلي يبدا من stt - xyd
اتمنى تكونو فهمتو قصدي
وهي الكود جربوا عدد خانات 1 و 2 و3 و4 و5
ممكن انو تتقرب الفكرة اكتر
مشكورين

PHP كود :
Imports System.IO
Public Class Form1

    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim arr
() As String = {"a""b""c""d""e""f""g""h""i""j""k""l""m""n""o""p""q""r""s""t""u""v""w""x""y""z"}
 
       Dim len As Integer arr.Length
        crack
(arrlen)
 
   End Sub

    Private Sub generate
(ByVal arr() As StringByVal i As IntegerByVal s As StringByVal len As Integer)
 
       If i 0 Then
            TextBox1
.Text += vbCrLf
            My
.Computer.FileSystem.WriteAllText("D:\aTOz.txt"TextBox1.TextTrue)
 
           TextBox1.Text Nothing
            Exit Sub
        End 
If
 
       If i = (TextBox2.Text 1Then
            End
        End 
If
 
       For j As Integer 0 To len 1
            Dim appended 
As String arr(j)
 
           generate(arr1appendedlen)
 
       Next
    End Sub

    Private Sub crack
(ByVal arr As String(), ByVal len As Integer)
 
       For i As Integer 1 To len
            generate
(arri""len)
 
       Next
    End Sub

End 
Class 

الرد }}}
تم الشكر بواسطة: حريف برمجة
#2
وعليكم السلام ورحمة الله وبركاته
مرحباً اخى AbdoDabak

كنت افكر ان انشاء لك سورس لما تريده او لا
فالامر ليس بالصعب لكن عندما اري طريقة توزيعك للكود
اري انه بطريقة رائعة ومميزة فاحببت ان اقوم بشرح الامر نظرياً ويبقي الامر لك لتطبيقها عملياً

شوف فى البداية لتجنب فقط تهنيج البرنامج عند العمل يفضل استخدام
اداء BackgroundWorker

طيب خلاف الامر ادخل فى نطاق المطلوب من الموضوع
تعال كده اقول انا بكتب من 1:10 وبعد الانتهاء من الكتابة تم حفظ الـ 10 ارقام فى الملف النص
فهنا اصبح عملية الحفظ اتت بالنهاية الامر بعد اتمام المطلوب

لا هنا هنعمل العكس تماماً
كل الامر انك هتجعل كلما تم اضافة رقم يتم عمل حفظ فى الملف
فمثلاً لو البرنامج اغلق بعد العد 3 فهنا الملف يحتوى من 1:3

طيب الى هنا الامر جميل ماذا يبقي الان
هو وضح كود قبل بدء عمل For بحيث يقوم بجلب محتوى الملف
ومن ثم عمل شرط بداخل حلقة For اذا كان القيمة ليس مطابقة / موجودة بداخل الملف يتم عمل الاضافة
وهذا الامر سيعمل بدون مشكلة اذا كان اول مرة يعمل البرنامج او فتح عند الاغلاق بصورة غير متوقعه

طيب كده حلينا المشكلة عملية الاستكمال من حيث توقف البرنامج عندها
يبقي جزء صغير وهو ازاي البرنامج هيعرف اخر ملف كان شغال عليه بدلاً من اعادة تحديد الملف لعمل الاستكمال

بكل بساطة ستقوم اضافة Settings وليكن من نوع نص ونقول ان اسمه PFile
طيب عند بدء عملة توليد الاحرف كل الامر ستقوم بحفظ مسار الملف فى PFile
وعند الانتهاء من حلقة For يتم تفريغ قيمة PFile

طيب ايه الاستفادة من هذا
شوف الامر بسيط جداً هتعمل شرط تحقق فى لود الفورم
اذا كان PFile يحتوى على نص فيظهر رسالة
لقد تم انقطاع عملية توليد الاحرف فى اخر مرة هل تريد استكمل الامر
اذا قال المستخدم نعم فهنا حدث الزر سيتم تنفيده مباشر فكده المستخدم لم يفعل اى شئ
طيب لو قال لا فهنا انت ستقوم بعمل كود تفريغ قيمة PFile وممكن تعمل معه حذف الملف الذى لم يستكمل

طيب لو حبيت اعمل لمسة اضافية تزيد جمالاً للامر
كل المطلوب تجعل الرسالة تحتوى على Yes/No/Cancel

اذا ضغط على Yes سيقوم بتنفيز حدث الزر مباشر
واذا ضغط No سيتم تفريغ قيمة PFile وما تشاء معه
واذا ضغط Cancel فهنا لم يحدث شئ فاصبح اذا ضغط المستخدم
على الزر يدوي يقوم بتنفيذ ما كان سيقوم به لو ضغط على Yes

طيب هستفاد هنا ايه من Cancel هو ان عطيت للمستخدم حرية تاجيل الامر لوقت اخر
ويمكنه اغلاق البرنامج واعادة تشغيله ويجد الرسالة تظهر معه لاستكمال الامر

والشئ الاضافى هو اذا الشخص ضغط على Cancel  ومن سم اتى لتحديد مسار ملف جديد
لاعادة توليد الاحرف من جديد ستظهر له رسالة يوجد عملية مسبقة غير مستكلمة فى حالة الضغط على Yes
سيتم الغاء العملية القديمة لاتمام انشاء عملية التوليد الجديدة
واذا ضغط No فهنا الملف اللى حدده كان لم يحدده

اتمنى ان تكون الفكرة وصلت لك لما قمت به من شرح
الامر بسيط جداً وكلها عبارة عن IF يعتبر
الامر الغلبة هو كونك ستضع اكواد اكبر من ما طرحته فى موضوعك
لاتمام تنفيذ ما قمت بشرحه نظرياً فاتمنا ما طرحته بسيط عليك

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: AbdoDabak , حريف برمجة
#3
شكرا لك اخي elgokr على الرد
لكن ما فائدة ال backgroundwoker
وهل هناك طريقة لتسريع توليد الاكواد
البرنامج ما بدي اساوي لكي يستخدمه مستخدم فقط ليتم انشاء اكواد
انا اعمل على مشروع فك ضغط الملفات المحمية بكلمة سر واحسن طريقة ومضمونة هي الاحتمالات البرنامج رح يجرب حرف حرف لوقت ما يفتح بس المشكلة ان الوقت لكتابة الكود 2 ساعة ل 4 خانات فعملية التنفيذ ستكون اكثر وخصوصا اذا كان الملف كبير الحجم
انا سويت البرنامج اللي شرحت انا عنو باول رد
بس المشكلة اني لكتابة 4 خانات بحتاج 2,500,000 سطر واكيد مافي وقت اكتب هاد الرقم من الاسطر ففكرت اني اسوي برنامج هو يكتب
وانا ما بدي اني يوصل مثلا لكتابة 2000000 سطر ويطفي الجهاز ارجع استنا لوقت ما يكتب 2000000 لتكمل 500000 سطر
بدي طريقة يكمل المشروع من 2000000 الى 2500000 ما يعيد من البداية
حتى لو اني وضعت تيكست بدية وتيكست نهاية مافي مشكلة
يعني بالتكست الاول اكتب aaa والتكست الثاني اكتب bzz
وبعد وقت اكتب في التكست الاول caa والثاني hzz
وبعد وقت اكمل
الرد }}}
تم الشكر بواسطة: حريف برمجة
#4
الشكر لله والحمد لله
والحمد لله على كل حال

بخصوص وظيفة backgroundwoker
هو لجعل الكود يعمل فى خلفية البرنامج بدون توقف
احياناً لما تقوم بعمل For وخصوصاً فى الحجم الكبير المشار اليه
ستجد نفسك غير قادر على تحريك البرنامج او تنفيذ اى امر اخر ايضاً
فهنا حل هذه المشكلة تكون من خلال backgroundwoker

انظر الى هذا الفيديو وستوضح لك الامور كاملاً

عند استخدام هذا الاداء ستتمكن من معرفة كم استغرق من الوقت والى اى نسبة وصل لها
ومع الشرح فى ردي السابق ستكون انهيت المطلوب كاملاً بدون اى مشكلة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: AbdoDabak , حريف برمجة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد كود معين اثابكم الله خالد كامل1 1 456 04-02-25, 09:28 PM
آخر رد: aliday03
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 554 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  [سؤال] اضافة ملف Pdf الى الريسورس واستخراجه الى مسار معين .. ackore 6 605 15-11-24, 02:51 AM
آخر رد: justforit
  معرفة عدد صفوف الجريد فيو بشرط معين modymody300894 4 658 12-11-24, 02:22 PM
آخر رد: salamandal
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 561 07-11-24, 09:15 PM
آخر رد: modymody300894
  طباعة تقرير بطول وعرض معين (التقرير عبارة عن سطر) atefkhalf2004 7 636 15-07-24, 01:53 AM
آخر رد: atefkhalf2004
  طلب تغيير لون خلية بالجريد كنترول حسب شرط معين heem1986 0 361 13-06-24, 09:59 AM
آخر رد: heem1986
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 419 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
Lightbulb [VB.NET] إطهار الصورة بمقاس معين في DataGridView أبو خالد الشكري 2 736 14-12-23, 03:01 PM
آخر رد: أبو خالد الشكري
  كيف اجعل البرنامج في بداية الشهر ينفذ حدث معين بالاصح اريد البرنامج في تاريخ واحد من Adel27213 3 937 05-11-23, 01:45 AM
آخر رد: justforit

التنقل السريع :


يقوم بقرائة الموضوع: