جدول المحتويات:

كود المصفوفة - فيجوال بيسك: 7 خطوات
كود المصفوفة - فيجوال بيسك: 7 خطوات

فيديو: كود المصفوفة - فيجوال بيسك: 7 خطوات

فيديو: كود المصفوفة - فيجوال بيسك: 7 خطوات
فيديو: 7- دورة دورة VBA Advanced الدالة Array - الدالة Filter دوال المصفوفات داخل محرر الاكواد 2024, شهر نوفمبر
Anonim
كود المصفوفة - فيجوال بيسك
كود المصفوفة - فيجوال بيسك

سيعرض رمز Visual Basic الجديد والمحسّن تأثيرًا مشابهًا لمصفوفة "Matrix" ، مع التمرير في One و Zero. ثم ينتقل إلى تسلسل Matrix "Wake Up Neo" ، ثم يستمر في تمرير الأرقام. أدرك أن هذا ليس بالضبط كيف يسير التسلسل داخل الفيلم ، ولكن كان هناك أشخاص يطلبون هذه الوظيفة ، لذلك أضفتها. أعتقد أن الطريقة التي أتبعها عشوائيًا في عرض أعمدة One و Zero هي أفضل جزء في الكود. أناقش بالضبط ما فعلته لاحقًا. هذا Instructable هو استجابة لـ Brennn10 "مرحبًا بك في المصفوفة في موجه الأوامر" Instructable. استند الكود الذي يتألف منه هذا Instructable في البداية إلى الكود المنشور في تعليق بواسطة DarkJoker على Instructable أعلاه. لقد كنت عمدًا صريحًا إلى حد ما مع توضيحي للكود حيث تلقيت عددًا قليلاً من طلبات التوضيح منذ البداية نشر هذا الحل.

الخطوة 1: احصل على الرمز الخاص بي

لقد أرفقت الكود الخاص بي أدناه. احفظ كلا الملفين (startMatrix.itsabat و matrix.itsavbs) داخل نفس المجلد على جهازك ، وقم بإزالة الجزء "itsa" من اسم الملف ، أي أعد تسمية الملفات إلى startMatrix.bat و matrix.vbs. ملفات Bat و vbs قابلة للتنفيذ ، وبالتالي لا يمكنني تحميلها بهذه الامتدادات هنا. لهذا السبب يجب عليك حفظها وإعادة تسميتها محليًا.

الخطوة الثانية: تنفيذ الكود

إذا كنت ترغب في تشغيل الكود الخاص بي ، فاتبع الإرشادات أدناه. إذا كنت لا ترغب في تنفيذ شيء ما على جهازك لا تعرف شيئًا عنه ، فأنت ذكي. يجب أن تنتقل إلى الخطوة التالية ، حيث أتصفح الكود وأظهر لك أنني لم أفعل أي شيء مخادع ، ومع ذلك ، إذا كنت تريد الوصول إليه فقط (أو كنت تستخدم جهاز شخص آخر ولا تفعل ذلك care) ، إليك كيفية بدء تشغيل الكود: الخطوة 1: انقر نقرًا مزدوجًا على "startMatrix.bat". هذا كل شيء. انتقل الآن إلى الخطوة التالية لتقرأ عن البرودة التي رأيتها للتو.

الخطوة الثالثة: فهم الكود ، الجزء الأول

دعنا نلقي نظرة على الكود ، بدءًا من البداية. آمل أن تتمكن من معرفة ما يكفي عن VB من الكود الخاص بي الذي ستنطلق منه وتتعلم كيفية الترميز في VB أفضل مني:) لذا أول الأشياء أولاً ، لدينا ملفان: ملف bat وملف vbs. إذا قمت بتحرير ملف bat ، فستلاحظ أنه ينفذ ملف vbs ، بعد إعداد النافذة ولون النص وعنوان النافذة. دعنا ننتقل إلى الأشياء الأكثر إثارة للاهتمام في ملف vbs. لمعلوماتك ، سأقوم فقط بالتطرق إلى أكثر سطور الكود إثارة للاهتمام هنا ، وأيضًا ، ادفع ملاحظة خاصة إلى السطور التي تبدأ بعلامة '(علامة ، أو علامة اقتباس واحدة). هذه تعليقات ، ولن يتم تنفيذها. الأسطر القليلة الأولى من matrix.vbs تقول "اضبط رسائل الخطأ الخاصة بي على المستوى الصريح" ولكن في نفس الوقت "لا تدع أي أخطاء ارتكبتها تكون قاتلة". لا حاجة إلى مناقشة حقيقية السطر الخامس: بياننا الخافت هنا يضع جميع المتغيرات التي سنستخدمها طوال فترة برنامجنا الصغير. لا نحتاج إلى الإعلان عن أنواع هذه المتغيرات ، أو القيم الأولية لها ، كما قد نفعل في بعض اللغات الأخرى. VB "قوي" مثل هذا. Line 12: يتيح لنا objSysInfo جمع بعض المعلومات عن النظام الذي نعمل عليه. نقوم بإنشاء الكائن هنا ، وفي السطر 13 ، يُرجع objSysInfo. UserName اسم المستخدم الذي قام بتسجيل الدخول حاليًا والذي يقوم بتنفيذ هذا الرمز. سيتم استخدام هذا لاحقًا بدلاً من "Neo" ، بحيث يمكن للبرنامج النصي أن يقول "Wake up، Martin…" إذا كان يتم تشغيله على جهازي ، أو "Wake up، Brennn10 …" إذا كان يتم تشغيله على جهاز Brennn10 وإذا كان هذا هو اسم المستخدم الخاص به ، ويسمح لك استخدام اسم مستخدم النظام برميها على الجهاز غير المؤمّن الخاص بصديقك وسيسحب اسمه تلقائيًا ، دون الحاجة إلى تغيير الرمز ، فلننتقل.

الخطوة 4: فهم الكود ، الجزء 2

السطر 16: الانتظار الفرعي هو أول روتين فرعي خاص بنا. يمكن استدعاء روتين فرعي من مكان مختلف في الكود ، وسيقوم بتنفيذ الكود داخل نص الروتين الفرعي ، ثم سيعيد التحكم في البرنامج إلى كود الاستدعاء. waitfor يُنشئ قوقعة لنا. من خلال القيام بذلك في حلقة مع "سكون" داخل الحلقة ، نسمح بتنشيط الغلاف حتى يكتمل قبل إعادة التحكم ، وهو أمر جيد جدًا. السطر 26: المصفوفة الفرعية هي روتيننا الفرعي الثاني ، وتأخذ المعلمة تسمى "العناصر". يقوم هذا الروتين الفرعي بطباعة الأرقام الرائعة التي يبدو أنها "تنخفض" ، كما في الفيلم. لقد أخذت بعض الأشياء كأمر مسلم به هنا. آمل أن تفهم من خلال شرحهم من أين أتيت ويمكن أن أفعل ذلك بشكل أفضل من 1. أولاً ، أفترض أنك تريد فقط 5 أعمدة من الأرقام ، وأن "العناصر" قابلة للقسمة على عدد الأعمدة (5). كان من السهل ضمان ذلك لأنني أعلن لاحقًا أن المعلمات التي تم تمريرها إلى "المصفوفة" هي 200 و 100 (تسمى مرتين). أفترض أيضًا أنك تريد تشغيل جميع الأعمدة الخمسة افتراضيًا. أعتقد أنه يبدو جيدًا ، ولكن يمكنك تغيير عدد قليل منها إلى FALSE إذا أردت أن يبدو السطر الأول من الأرقام عشوائيًا مثل باقي الصفوف. حسنًا ، لدينا 5 أعمدة ، لدينا 200 / 5 = 40 سطرًا من الأرقام المراد عرضها (الأسطر للكتابة) ، ويتم تشغيل جميع الأعمدة افتراضيًا. (الحلقة B) التي تتنقل عبر عدد الأعمدة. في Loop B ، نختار قيمة الحلقة المتغيرة loopB ، واعتمادًا على قيمتها ، نقوم بتقييم عبارة If-Else. إذا كان العمود المعني ممكّنًا ("TRUE" أو "قيد التشغيل") ، فسنطبع ، عبر "wshell. SendKeys" ، قيمة Int (Round (rnd ())) ، متبوعة بعلامة تبويب. خلاف ذلك ، سنطبع علامة تبويب فقط ، بحيث يظهر العمود فارغًا ، فما هي قيمة Int (Round (rnd ()))؟ تُرجع rnd () رقمًا عشوائيًا للفاصلة العائمة بين 0.0 و 1.0 ، وستأخذ Round () هذه القيمة وتقربها إلى أقرب قيمة صحيحة ، وتعيد Int () النتيجة إلى عدد صحيح. يمكن اعتبار هذه الخطوة الأخيرة مبالغًا فيها ، نظرًا لأن المكالمة المستديرة () يجب أن تعطينا 0 أو 1. لقد فعلت ذلك فقط بسبب العادة. في مرحلة ما لابد أن شخصًا ما قد أخبرني أنه كان أكثر أمانًا ، ويبدو أنني لم أنساه بعد. في الجزء 3 …

الخطوة 5: فهم الكود ، الجزء 3

استمرار المصفوفة الفرعية ، إليك الأسطر القليلة التالية من VB … "هذه الأعمدة المتقلبة" ، لذلك إذا كان العمود متوقفًا ، فسيتم تشغيله بنسبة 30 بالمائة من الوقت ، وإذا كان العمود قيد التشغيل ، فسيكون كذلك تم إيقاف تشغيله بنسبة 30 بالمائة من الوقت. turnOffMax = 0.30 turnOnMax = 0.30 تبديل كل عمود 30٪ من الوقت يجعل أعمدة الأرقام "تسقط" بطريقة عشوائية مشابهة لما يحدث في الفيلم. ليس دقيقًا ، لكنه قريب. العمود 1 flip-flop flipMe = rnd () If ((col1 = turnOn) و (flipMe <turnOffMax)) ثم col1 = turnOffMax If ((col1 = turnOff) و (flipMe <turnOnMax)) ثم col1 = turnOn End IfThe تتعامل الكتلة أعلاه مع كيفية تحديد ما إذا كنا سنعرض رقمًا في العمود المحدد أثناء التكرار التالي ، للصف التالي من الأرقام. تقرأ الشفرة "إذا كان العمود قيد التشغيل وكان الرقم العشوائي المسمى flipMe أقل من 30٪ ، فقم بإيقاف تشغيل العمود. وإلا ، إذا كان العمود متوقفًا وكان flipMe أقل من 30٪ ، فقم بتشغيل العمود." حتى المصفوفة الفرعية. إلى المفتاح الفرعي …

الخطوة 6: المفتاح الفرعي ()

طريقة المفتاح أدناه..sleep 250nextwscript.sleep 3000for position = 1 to length wshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend sub هذه الطريقة تطبع سلسلة نصية "msg". سوف تطبع أي شيء تمرره. يتم استدعاء هذه الطريقة لاحقًا في الكود. تطبع حلقة FOR الأولى كل حرف في السلسلة ، واحدًا تلو الآخر ، وتتوقف مؤقتًا لمدة 250 مللي ثانية بين كل حرف. ثم ننام لمدة 3000 مللي (3 ثوان) ونكتب مسافة للخلف لكل حرف قمنا بطباعته مسبقًا ، وننام هذه المرة أقل بقليل ، هذا كل ما في الأمر. ننتقل إلى الجزء الأساسي من البرنامج ، حيث يجتمع كل شيء معًا.

الخطوة 7: الرئيسية

يستدعي التنفيذ الرئيسي للبرنامج waitFor والمصفوفة (التي غطيناها بالفعل) لإعداد كل شيء وكتابة 200 رقم ثنائي ، موزعة على 5 أعمدة. ثم يتم انتزاع اسم مستخدم النظام الحالي والتلاعب به ليتم طباعته كجزء من تسلسل "التنبيه". ثم ندخل حلقة FOR ، والتي نعلم أننا سنكررها أكثر من 4 مرات فقط بسبب "1" إلى 4 "قيد. نختار بعد ذلك متغير الحلقة (loopA) ، والذي يطابق جملة CASE الأولى من المرة الأولى ، وعبارة CASE الثانية في المرة الثانية خلال الحلقة ، وما إلى ذلك. كل تكرار للحلقة ، يتم تعيين myString على تمثيل السلسلة الصحيح لـ الإسهاب الذي نريد طباعته ، والروتين الفرعي الرئيسي يسمى بالفعل الطباعة. من الواضح أن هناك العديد من الطرق الأخرى لتصميم هذه الحلقة ، وسأترك ذلك كتمرين للقارئ ، وبمجرد الخروج من الحلقة FOR ، نطلب مرة أخرى روتين المصفوفة الفرعي لطباعة المزيد من الأرقام. كما يقول التعليق في الكود ، يمكنك وضع هذا الاستدعاء الأخير في المصفوفة () في حلقة إذا كنت ترغب في ذلك ، أو يمكنك فقط الاتصال بها برقم أكبر ، وما إلى ذلك. التنفيذ (الممارسة الجيدة دائمًا: P). أتمنى أن يستمتع الجميع بأخذ مثالي وجعله أفضل! إذا كان هذا Instructable قد أثار فضولك مع VB ، فيمكن لـ Google توفير الكثير من الموارد الجيدة لمعرفة المزيد عنها أكثر مما يمكنني إخبارك به. ترميز سعيد! مارتن

موصى به: