اخ amr_a : مشكور على الملف , و اما بالنسبة لكود اغلاق الجهاز فاعتقد ان الطريقة الوحيدة هي باستخدام دوال ال API والتي سنتعرض لمجموعة منها قريبا ان شاء الله .
اخ adeebss : اهلا وسهلا بك و ننتظر منك ومن الاخوة المشاركات .
اخ amr_a : مشكور على الملف , و اما بالنسبة لكود اغلاق الجهاز فاعتقد ان الطريقة الوحيدة هي باستخدام دوال ال API والتي سنتعرض لمجموعة منها قريبا ان شاء الله .
اخ adeebss : اهلا وسهلا بك و ننتظر منك ومن الاخوة المشاركات .
التعامل مع النصوص 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 حروف .
شكرا جزيلا لك أخي عبد الرحمن ... اللهم إكتب ما تقوم به في موازين حسناتك ... وارفع درجتك ... كما ترفع من مستوى إخوانك .
======
أخوك
بكر
التعامل مع النصوص 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 .
تفيدك في البحث اذا اردت اضافة ميزة الاستبدال كما في برامج تحرير النصوص .
مرحبا بك اخ بكر :)
معليش ما شفتك :D
تنسيق البيانات
الدالة Format : تقوم بتنسيق رقم او تاريخ او عملة الى نمط معين .
MsgBox(Format(54681251, "$###,##,##"))
الكود السابق يقوم بتحويل رقم الى عملة بنمط معين . هذا النمط يحدد في الوسيط الثاني للدالة .
من خلال هذه الدالة يمكنك تحويل انماط كثيرة للبيانات .
بسم الله الرحمن الرحيم
اخى عبد الرحمن جميل جدا جدا جدا
ولكن انا افكر فى شىء ارجوا ان تسرع بالرد على بة
اريد ان نشترك فى مشروع ولو صغير نشارك جميعا فية وكل من لدية معلومة فاليشارك بها:):)
واذا وافقت فالنحدد مشروع ولو صغير نبدأ جميعا بة اخوك عمرو:):):):)
وهذا كود يقوم بالاتصال بالبور بوينت
نقوم باضافة المكتبة الخاصة بالبور بوينت
ثم نكتب الكود التالى
Dim op As New PowerPoint.Application() op.Visible = True op.Presentations.Open(filename:="a.ppt") op.ActivePresentation.SlideShowSettings.Run() op = Nothing
وشكرا وهذة معلومة بسيطة
;);););););););););););););););););););););););););)
اولا اشكرك يا اخ عمر على المعلومة المفيدة فعلا , واتمنى كل واحد منكم ان يشاركنا ولو بسطر واحد . لكي نستفيد ونفيد .
و اما بالنسبة للمشروع فانا حاضر ولكن ضع الفكرة في المنتدى لكي يراها الكل .
تنسيق البيانات 2
الدالة LSet : تقوم بمحاذاة النص الى جهة اليسار .
الدالة RSet : تقوم بمحاذاة النص الى جهة اليمين .
MsgBox(RSet("helo", 100))الكود السابق يقوم بمحاذاة كلمة helo الى جهة اليمين بمقدار 100 خانة .
الرياضيات
كما نعلم بان الرياضيات عنصر اساسي في البرمجة . يعني اذا كنت مبرمج فيتوجب عليك ان تكون فاهم في الرياضيات و دوالها. وسنستعرض مجموعة بسيطة من الدوال الرايضية .
الدالة 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)))
الدالة Log : تعطيك اللوغاريثم الطبيعي و ليس العشري
MsgBox(Log(2.7))
احب فقط ان اذكر بان الدوال السابقة لن تعمل الا بكتابة هذا السطر في بداية صفحة الكود لكي نقوم باستدعاء الدوال الرياضية :
Imports System.Math
ماشاء الله
التاريخ و الوقت
اولا ارحب بالاخ 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 يوم .
التاريخ و الوقت 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))
التابع الاول : الجزء الذي تريده من التاريخ .
التابع الثاني: التاريخ الذي تريد جزءا منه .
بقي علينا
- دوال الادخال و الاخراج مع الملفات
- دوال الارقام العشوائية
- دوال اخرى
و قد تعلمنا بصورة سريعة دوال :
- الادخال و الاخراج
- التعامل مع الملفات و المجلدات
- التعرف على انواع البيانات
- التحويل في انواع البيانات
- التعامل مع النصوص
- تنسيق البيانات
- الرياضيات
- التاريخ و الوقت
و انتظر منكم التفاعل (clock)
ملاحظة على انشاء مجلد :
معظم اعضاء الفصيلة ديركتوري Directory اعضاء مشتركة Shared ، مما يعني انك لست بحاجة لإنشاء كان من نفس النوع لكي تصل للأعضاء .
يعني : لست مضطرا لعمل dim x as Directory
و حقيقة حتى هذا الأمر لا يصنع كائن لأنه لا يحتوي على منشئ الكائن New
ماذا يعني كل ذلك ؟؟
بدلا من الكود المستخدم يمكنك استخدام :
Directory.CreateDirectory "myDir
, و يمكن استخدام جميع الأعضاء الأخرى كذلك ، اي مباشرة .
شكرا لكم ! و تحياتي
:o:o:o:o:o:o:o:o:o
كله تمت وكويس ومحدش قال حاجه بس انا مش فاهم حضرتك بتتكلم على ايه ..اناعارف فجول بيسك كمبتدء....بس انا كل ما اكتب الانت بتكتبة بيقولي فجول بيسك في خطأ....
:D:D:D:D:D:D:D
اخ بريفات كاسل : اشكرك جزيل الشكر على الملاحظة المفيدة .
اخ عاوز اتعلممم : م فهمت مشكلتك بالضبط . اتوقع انك بتكتب الكود في فجوال بيسك 6 .
دوال اخرى1
الدالة Rnd : تقوم بانشاء رقم عشوائي بين عددين .
MsgBox(Rnd() * 5)
الكود السابق يقوم بانشاء رقم عشوائي بين العدين 1 و 5 .
واذا اردت ازالة الارقام العشرية فعليك باستخدام الدالة Round .
MsgBox(Round(Rnd() * 5))
و اذا اردت عدم تكرار الرقم العشوائي فعليك باستخدام الدالة Randomize , ولكن لا يمكنك استخدام الدالة Round لانها ستقرب العدد و بالتالي سيتكرر لديك الرقم العشوائي .
Randomize() MsgBox(Rnd() * 5)
دوال اخرى 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
أخ
عبدالرحمن
هل لك أن تشرح طريقة تكبير وتصغير صورة PictureBox
تصغير و تكبير ال 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")حذف ملفات مجلد
سنتعلم اليوم كود بسيط مبني على فكرة البرمجة الدورية 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
تحياتــــــــــــــــــي :)
مشكووووووور أخ عبدالرحمن (f)(f)(f)
بصراحة حمستني على البدأ بدراسة vb.net
اخوك sharp7
:)
مشكور أخي عبد الرحمن
سؤال آخر إذا بالأمكان
كيف يمكننا كتابة
form1.ScaleHeight
vb.net
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…