الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دروس شبه يومية لل Visual Basic .Net

مغلقرائج
بدأه عبدالرحمن في 14 يناير 2003 · 305 رد · 102,183 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#101

اخ amr_a : مشكور على الملف , و اما بالنسبة لكود اغلاق الجهاز فاعتقد ان الطريقة الوحيدة هي باستخدام دوال ال API والتي سنتعرض لمجموعة منها قريبا ان شاء الله .

اخ adeebss : اهلا وسهلا بك و ننتظر منك ومن الاخوة المشاركات .

#102

التعامل مع النصوص 2

الدالة Instr : تعطيك موقع النص 1 خلال النص 2 . والمثال هو افضل وسيلة للتوضيح :

        Dim x, y As String

        x = "look Over over there"

        y = "over"

        MsgBox(InStr(x, y, CompareMethod.Text))

الكود السابق يعرض لك موقع الكلمة y خلال الجملة x .

الدالة Instr لها 3 وسائط :

1- النص الذي تريد البحث فيه .

2- النص الذي تريد البحث عنه .

3- نوع طريقة البحث , فلو اخترت ال Binary فان البحث سيضع في الحسبان الحروف الكبيرة و الصغيرة .

يعني الكود السابق سيعرض لك في صندوق الرسالة الرقم 6 لان موقع اول حرف في الكلمة over خلال النص x هو 6 . ولكن لو غيرنا الطريقة من text الى binary فانه سيعرض لك الرقم 11 لان over الاولى كابيتال .

الدالة Instr تفيدك في البحث كثيرا .

الدالة StrComp : تقارن بين نصين من حيث الحجم .

        MsgBox(StrComp("helo", "helo", CompareMethod.Text))

سيعرض لك القيمة صفر لان النصين متطابقين .

        MsgBox(StrComp("heloo", "helo", CompareMethod.Text))

سيعطيك القيمة 1 لان النص الاول اكبر من الثاني .

        MsgBox(StrComp("hel", "helo", CompareMethod.Text))

سيعطيك القيمة -1 لان النص الاول اصغر من الثاني .

الدالة Len : تعطيك عدد حروف نص معين .

        MsgBox(Len("الحمد لله"))

ستكون القيمة 9 لان عدد حروف الجملة هي 9 .

الدالة Trim : تزيل مسافات النص من اليمين ومن اليسار .

        Dim x As String = InputBox("Type your name")

        MsgBox(Trim(x) + "OK")

فلو وضعت مسافة على يمين النص فستلاحظ انه ازيل .

الدالة Space : تضيف مسافة الى النص .

        Dim x As String = InputBox("Type your name")

        MsgBox(x + Space(5) + "OK")

فستضيف بين النصين مسافة حجمعا 5 حروف .

#103

شكرا جزيلا لك أخي عبد الرحمن ... اللهم إكتب ما تقوم به في موازين حسناتك ... وارفع درجتك ... كما ترفع من مستوى إخوانك .

======

أخوك

بكر

#104

التعامل مع النصوص 3

الدالة StrDup : تعطيك رمز او حرف او نص مكرر بعدد معين من المرات .

        MsgBox(StrDup(20, "!"))

فمثلا الكود السابق يعرض الرمز ! عشرين مرة .

الدالة StrReverse : تقوم بعكس نص معين .

MsgBox(StrReverse("helo"))

الدالة Replace : تقوم باستبدال نص معين خلال جملة بنص اخر .

        Dim x As String = "Visual Basic .NET"

        MsgBox(Replace(x, ".NET", "Seven"))

الكود السابق يعرض الجملة x ولكن بعد ان يستبدل الكلمة .NET ب Seven .

تفيدك في البحث اذا اردت اضافة ميزة الاستبدال كما في برامج تحرير النصوص .

#105

مرحبا بك اخ بكر :)

معليش ما شفتك :D

#106

تنسيق البيانات

الدالة Format : تقوم بتنسيق رقم او تاريخ او عملة الى نمط معين .

 MsgBox(Format(54681251, "$###,##,##"))

الكود السابق يقوم بتحويل رقم الى عملة بنمط معين . هذا النمط يحدد في الوسيط الثاني للدالة .

من خلال هذه الدالة يمكنك تحويل انماط كثيرة للبيانات .

#107

بسم الله الرحمن الرحيم

اخى عبد الرحمن جميل جدا جدا جدا

ولكن انا افكر فى شىء ارجوا ان تسرع بالرد على بة

اريد ان نشترك فى مشروع ولو صغير نشارك جميعا فية وكل من لدية معلومة فاليشارك بها:):)

واذا وافقت فالنحدد مشروع ولو صغير نبدأ جميعا بة اخوك عمرو:):):):)

وهذا كود يقوم بالاتصال بالبور بوينت

نقوم باضافة المكتبة الخاصة بالبور بوينت

ثم نكتب الكود التالى

Dim op As New PowerPoint.Application()

        op.Visible = True

        op.Presentations.Open(filename:="a.ppt")

        op.ActivePresentation.SlideShowSettings.Run()

        op = Nothing

وشكرا وهذة معلومة بسيطة

;);););););););););););););););););););););););););)

#108

اولا اشكرك يا اخ عمر على المعلومة المفيدة فعلا , واتمنى كل واحد منكم ان يشاركنا ولو بسطر واحد . لكي نستفيد ونفيد .

و اما بالنسبة للمشروع فانا حاضر ولكن ضع الفكرة في المنتدى لكي يراها الكل .

#109

تنسيق البيانات 2

الدالة LSet : تقوم بمحاذاة النص الى جهة اليسار .

الدالة RSet : تقوم بمحاذاة النص الى جهة اليمين .

MsgBox(RSet("helo", 100))

الكود السابق يقوم بمحاذاة كلمة helo الى جهة اليمين بمقدار 100 خانة .

#110

الرياضيات

كما نعلم بان الرياضيات عنصر اساسي في البرمجة . يعني اذا كنت مبرمج فيتوجب عليك ان تكون فاهم في الرياضيات و دوالها. وسنستعرض مجموعة بسيطة من الدوال الرايضية .

الدالة abs : ترجع القيمة المطلقة لعدد معين

        MsgBox(Abs(-6))

        MsgBox(Abs(6))

سيكون الناتج 6 في كليهما . لان القيمة المطلقة تقلب الاشارة السالبة الى موجبة . وهذه تفيدنا في قياس الطول و العرض لان المسافة دائما بالموجب .

الدالة Round : تقوم بتقريب العدد

        MsgBox(Round(2.49))

        MsgBox(Round(2.51))

في الاولى سينتج 2 لان .49 اقل من النصف, وفي الثانية سينتج 3 لان .51 اكثر من النصف .

الدالة Pow : تقوم برفع عدد الى اس معين .

        MsgBox(Pow(2, 4))

سيكون الناتج 16 , لاننا ضربنا العدد 2 في نفسه 4 مرات .

الدالة Cos : تعطيك جيب تمام زاوية تقاس بنظام الراديان .

MsgBox(Cos(3.14))

سيكون الناتج قريب من السالب واحد .

ولكن باستخدام الدالة Round :

        MsgBox(Round(Cos(3.14)))

سيكون الناتج -1 تماما .

الدالة Sin : تعطيك جيب الزاوية

        MsgBox(Round(Sin(3.14)))

الدالة Tan : تعطيك ظل الزاوية

        MsgBox(Round(Tan(3.14)))
#111

الدالة Log : تعطيك اللوغاريثم الطبيعي و ليس العشري

MsgBox(Log(2.7))

احب فقط ان اذكر بان الدوال السابقة لن تعمل الا بكتابة هذا السطر في بداية صفحة الكود لكي نقوم باستدعاء الدوال الرياضية :

Imports System.Math
#112

ماشاء الله

#113

التاريخ و الوقت

اولا ارحب بالاخ jarour .

ثانيا: بعد ان اخذنا لمحة سريعة على الدوال الرياضية في فيجوال بيسك .نت , سابدا بدوال التاريخ و الوقت . و هي دوال سهلة و مفيدة .

الدالة Now : تعطيك الوقت و التاريخ الحالي .

        MsgBox(Now)

الدالة Weekday : تعطيك رقم اليوم (من 1 الى 7 ) لتاريخ معين .

ولها تابعين:

الاول: التاريخ الذي تريد رقم يومه .

الثاني: اليوم الاول في الاسبوع . لان اليوم الاول يختلف من مجتمع لاخر .

        MsgBox(Weekday(Now, FirstDayOfWeek.Saturday))

فمثلا في الكود السابق ستعطيك الدالة الرقم 2 اذا كان اليوم هو يوم الاحد , او الرقم 3 اذا كان اليوم هو الاثنين .

الدالة DateSerial :

        MsgBox(DateSerial((Now.Year), (Now.Month), (Now.Day) + 1000))

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

هذه الدالة لها 3 توابع ( السنة , الشهر , اليوم ) ثم اضفت 1000 يوم لكي تعطينا التاريخ بعد 1000 يوم .

#114

التاريخ و الوقت 2

الدالة DateDiff : تعطيك الفترة بين تاريخين محددين .

        Dim date1 As Date = #3/30/2000#

        MsgBox(DateDiff(DateInterval.Day, date1, Now).ToString + " day")

الدالة DateDiff لها 3 توابع :

1- نوع الفترة التي تريدها (يوم , شهر , سنة ...)

2- التاريخ الذي تريد طرحه من التاريخ الثاني .

3- التاريخ المطروح منه .

الدالة DatePart : تجزئ تاريخ معين .

        MsgBox(DatePart(DateInterval.Month, Now))

التابع الاول : الجزء الذي تريده من التاريخ .

التابع الثاني: التاريخ الذي تريد جزءا منه .

#115

بقي علينا

- دوال الادخال و الاخراج مع الملفات

- دوال الارقام العشوائية

- دوال اخرى

و قد تعلمنا بصورة سريعة دوال :

- الادخال و الاخراج

- التعامل مع الملفات و المجلدات

- التعرف على انواع البيانات

- التحويل في انواع البيانات

- التعامل مع النصوص

- تنسيق البيانات

- الرياضيات

- التاريخ و الوقت

و انتظر منكم التفاعل (clock)

#116

ملاحظة على انشاء مجلد :

معظم اعضاء الفصيلة ديركتوري Directory اعضاء مشتركة Shared ، مما يعني انك لست بحاجة لإنشاء كان من نفس النوع لكي تصل للأعضاء .

يعني : لست مضطرا لعمل dim x as Directory

و حقيقة حتى هذا الأمر لا يصنع كائن لأنه لا يحتوي على منشئ الكائن New

ماذا يعني كل ذلك ؟؟

بدلا من الكود المستخدم يمكنك استخدام :

Directory.CreateDirectory "myDir

, و يمكن استخدام جميع الأعضاء الأخرى كذلك ، اي مباشرة .

شكرا لكم ! و تحياتي

#117

:o:o:o:o:o:o:o:o:o

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

:D:D:D:D:D:D:D

#118

اخ بريفات كاسل : اشكرك جزيل الشكر على الملاحظة المفيدة .

اخ عاوز اتعلممم : م فهمت مشكلتك بالضبط . اتوقع انك بتكتب الكود في فجوال بيسك 6 .

#119

دوال اخرى1

الدالة Rnd : تقوم بانشاء رقم عشوائي بين عددين .

        MsgBox(Rnd() * 5)

الكود السابق يقوم بانشاء رقم عشوائي بين العدين 1 و 5 .

واذا اردت ازالة الارقام العشرية فعليك باستخدام الدالة Round .

        MsgBox(Round(Rnd() * 5))

و اذا اردت عدم تكرار الرقم العشوائي فعليك باستخدام الدالة Randomize , ولكن لا يمكنك استخدام الدالة Round لانها ستقرب العدد و بالتالي سيتكرر لديك الرقم العشوائي .

        Randomize()

        MsgBox(Rnd() * 5)
#120

دوال اخرى 2

احب ان اذكر فقط بانك اذا اردت استخدام الدالة Round فعليك باستدعاء دوال الرياضيات .

Imports System.Math

الدالة Shell : تقوم بتشغيل برنامج معين .

        Shell("notepad.exe", AppWinStyle.MaximizedFocus)

التابع الاول : مسار البرنامج الذي تريد تشغيله .

التابع الثاني : كيفية فتح النافذة (كبيرة , صغيرة , عادية , مخفية )

الدالة IIF : اليك المثال .

        MsgBox(IIf(5 = 4, "right", "wrong"))

التابع الاول : اي عبارة . و في هذا الكود و ضعت العبارة 5 تساوي 4 . و هي عبارة خاطئة .

التابع الثاني : ما ستعيده الدالة اذا كانت العبارة صحيحة .

التابع الثالث : ما ستعيده الدالة اذا كانت العبارة خاطئة .

وطبعا راح تكون النتيجة wrong لان العبارة خاطئة . ولكن لو كانت العبارة 5 تساوي 5 لكانت النتيجة right .

الدالة Environ : تعطيك متغيرات نظام التشغيل (اسم المستخدم , اسم الجهاز , مسار مجلد الويندوز ... الخ )

MsgBox(Environ(27))

الكود السابق يعيد اسم المستخدم . يمكنك ان تجرب الاعداد من 1 الى 30 .

        MsgBox(Environ("TMP"))

هذا الكود يعطيك مسار مجلد ال temp .

الدالة Beep : تقوم باصدار صوت منبه من السماعات اذا كان لديك كرت صوت او من داخل الجهاز اذا لم يكن لديك .

Beep
#121

أخ

عبدالرحمن

هل لك أن تشرح طريقة تكبير وتصغير صورة PictureBox

#122

تصغير و تكبير ال PictureBox يتم باستخدام خاصتي ال width , height .

ولكن هاتين الخاصيتين لا تقوم بتصغير او تكبير الصورة . التي تقوم بهذه المهمة هي الدالة GetThumbnailImage . والتي تم شرحها سابقا .

المثال التالي يقوم بتكبير اي صورة في PictureBox1 و يخزنها في مسار d:xxx.bmp .

        Dim x As Bitmap

        x = PictureBox1.Image.GetThumbnailImage(PictureBox1.Width + 100, PictureBox1.Height + 100, Nothing, Nothing)

        x.Save("d:xxx.bmp")
#123

حذف ملفات مجلد

سنتعلم اليوم كود بسيط مبني على فكرة البرمجة الدورية Recursive Programming . هذا الكود يقوم بمسح جميع ملفات مجلد معين ثم يقوم بحذف هذا المجلد . و سابدا بشرح الفكرة منطقيا (خطوة بخطوة)

1- قم باستدعاء فضاء الاسماء IO الذي يحتوي على فئات المجلدات و الملفات .

 Imports System.IO

2- الكود التالي يقوم بحذف جميع ملفات المجلد C:XX .

        Directory.Delete("C:xx", True)

التابع الثاني يطلب منك فيما اذا اردت حذف المجلد بما فيه من ملفات و مجلدات او حذف المجلد فقط و هذه الحالة سيكون المجلد فاضي .

اذن هذه الدالة ادت الغرض . ولكن تبقى هناك مشكلة او استثناء بمعنى اخر , وهو اذا كانت هناك ملفات لها الخاصية Read-Only فلن تستطيع هذه الدالة القيام بحذفها . ولذلك يجب علينا ان نقوم بتغيير خصائص جميع ملفات المجلد الى Normal .

3- لكي تقوم بتغيير خصائص جميع ملفات المجلد الى Normal يجب ان تكتب هذا الكود

    Dim h As String



    Sub Clean()

        For Each h In Directory.GetFiles("C:xx")

            File.SetAttributes(h, FileAttributes.Normal)

        Next

    End Sub

في البداية استخدمنا العبارة For Each .... Next , لكي نتعامل مع كل ملف في هذا المجلد . مهمة السطر الاول ان يخزن مسار كل ملف في المتغير h .

اما السطر الثاني فيقوم بتوحيد خصائص جميع الملفات الموجودة في المجلد C:xx الى Normal .

لاحظ ان الكود السابق لا يقوم بتغيير خصائص المجلدات و انما خصائص الملفات فقط .

4- لاستخدام الاجراء السابق قم بكتابة هذا الكود

        Clean()

        Directory.Delete("C:xx", True)

السطر الاول يستدعي الاجراء Clean .

السطر الثاني يمسح المجلد بما فيه من ملفات . كما انه يقوم بحذف المجلدات التي ليس بها ملفات Read-Only .

و باذن الله سوف اقوم قريبا بوضع كود يمسح المجلد بما فيه من ملفات ومجلدات و خرابيط ووو , و سيقوم ايضا على مبدا البرمجة الدورية Recursive Programming .

واليك الكود كاملا

    Dim h As String



    Sub Clean()

        'On Error Resume Next

        For Each h In Directory.GetFiles("C:xx")

            File.SetAttributes(h, FileAttributes.Normal)

        Next

    End Sub



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

        Clean()

        Directory.Delete("C:xx", True)

    End Sub

ولكن قبل كل شيء لا تنسى

Imports System.IO

تحياتــــــــــــــــــي :)

#124

مشكووووووور أخ عبدالرحمن (f)(f)(f)

بصراحة حمستني على البدأ بدراسة vb.net

اخوك sharp7

:)

#125

مشكور أخي عبد الرحمن

سؤال آخر إذا بالأمكان

كيف يمكننا كتابة

form1.ScaleHeight

vb.net

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…