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

مصطلحات برمجية هامة

مغلق
بدأه ELKING في 21 يناير 2005 · 27 رد · 5,543 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذه بعض المصطلحات البرمجيه الهامه التى يجب على كل مبرمج ان يكون ملم بها

Dao

Data Access Objects

توفر هذه التقنية مجموعة من الكائنات (Objects) للتخاطب مع قاعدة البيانات، وإرسال الأوامر لها. وهي مصممة بشكل رئيس للتعامل مع قواعد بيانات أكسس، لكن يمكنك استخدامها في التعامل مع قواعد بيانات أخرى من خلال المحرك Jet الذي توفره. وتمتاز هذه التقنية بسهولتها، كما إنَّ مكتبة MFC تحتوي على أصناف لتبسيط هذه التقنية بشكل أكبر. ومن مميزاتها أنها تمكنك أيضاً من تغيير الهيكل الخاص بقواعد بيانات أكسس، وذلك عبر إضافة الجداول لها مثلاً، أوتغيير هيئة أحد جداولها.

لكن من عيوب تقنية DAO أنها تستخدم طبقات برمجية كثيرة، فإذا أردت مثلاً التخاطب مع إحدى قواعد البيانات العلائقية باستخدام هذه التقنية، فإن ذلك سيأخذ بعض الوقت. لكنها ملائمة للتخاطب مع قواعد بيانات أكسس .

Ado

(ActiveX Data Objects)

تقنية ADO مبنية على تقنية OLE DB، لكنها تبسط هذه الأخيرة بشكل كبير، ويمكنك استخدامها في العديد من لغات البرمجة، وهي مرنة إلى حد بعيد. وتتمتع تقنية ADO بمزايا تقنية OLE DB، لكن مع قدر أكبر من السهولة. وإذا أردت تقنية تتمتع بقدر كبير من السهولة، والاستقرار، وقوة الأداء، فلا أجد أفضل من النصح باستخدام هذه التقنية.

Primavera

برنامج تخطيط المشاريع Primavera،

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

المواضيع الأساسية التي يتضمنها البرنامج :

إنشاء خطة مشروع.

تعريف التقاويم.

إدارة المهام والنشاطات في المشروع.

استخدام الفلاتر والتخطيطات في العرض والطباعة.

تشفير المهام وإسناد الشيفرات (كودات المهام).

استخدام الكودات في التجميع والفرز والتنظيم.

إضافة العلاقات والقيود إلى الخطة.

المخطط الشريطي ومخطط PERT.

المسارات الحرجة وطرق إظهارها.

إنشاء التقارير البيانية والمجدولة حول تقدم المشروع.

طرق تتبع تقدم العمل في المشروع وإظهاره على الخطة.

حسابات الجداول (جدولة المشاريع).

تقييم المشاريع وتسويتها.

قيادة الموارد وتخطيط المشاريع مع الموارد.

التعامل مع مجموعات المشاريع.

Ole Db

object-linking and embedding database

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

وتمتاز تقنية OLE DB عن التقنيات السابقة بميزتين، فهي أولاً تدعم تقنية COM، وذلك بتوفيرها لواجهة COM لبرمجة قواعد البيانات. وهي ثانياً، تدعم جميع قواعد البيانات العلائقية وغير العلائقية.

تعتبر هذه التقنية صعبة ومعقدة، وتحتاج إلى جهد برمجي للتعامل معها، كما هو الحال مع تقنية ODBC. لكنها تتمتع بمرونة واستقرار عاليين. ولا أريد أن أخوض في شرح محاسنها، ونقاط ضعفها، لكنها بكل تأكيد أفضل من سابقاتها، ويكفي القول بأنها تمثّل مستقبل تطوير قواعد البيانات على نظام ويندوز، وستركز مايكروسوفت جهودها لتطويرها، ولتطوير التقنية المبسطة لها ADO.

Rdo

Remote Data Objects

طوّرت هذه التقنية بشكل رئيس لتوفر طبقة مُبَسِطة لتقنية ODBC إلى مبرمجي لغة فيجوال بيسك. لذا فهي قريبة جداً من تقنية ODBC، لكنها أبسط كثيراً.

Odbc

Open Database Connectivityتم تصميم هذه التقنية في أوائل التسعينيات للتعامل مع قواعد البيانات العلائقية بشكل خاص، ويمكنك من خلال مجموعة الأوامر التي توفرها التخاطب مع أية قاعدة بيانات علائقية، تملك برنامج قيادة (Driver) خاص لتقنية ODBC.

تعتبر الأوامر البرمجية التي توفرها ODBC معقدة نسبياً، ودفع هذا شركة مايكروسوفت إلى إضافة أصناف (Classes) إلى مكتبتها الشهيرة (MFC) لتبسيط هذه التقنية، ونجحت بذلك. إذ يمكنك باستخدام هذه الأصناف أن ترسل أوامرك إلى قاعدة البيانات، وأن تستقبل النتائج منها ببساطة. لكن من عيوب هذه التقنية أنها لا تمكّنك من التعامل إلا مع قواعد البيانات العلائقية .

#2

السلام عليكم

شكرا على الموضوع القيم لكن لى استفسار

ايه الفرق بين ADO و DAO من حيث التعامل مع قاعدة البيانات و ايه الداعى اللى جعل مايكروسوفت تنزل تقنيتين

AlexCard.gif

Business Card

Ahmad Fathy Ahmad

Computer and Systems Department

Faculty of Engineering, Alexandria University

Cellular: +2 010 1461154

E-mail: midoalx@hotmail.com

ICQ: 148481391

#3

الاستاذ الكبير / حمادة محمد سامى

كيف يمكننا تسجيل أدوات الا Ado لبرامجنا الشخصية حتى يعمل البرنامج على الاجهزة الاخرى وذلك عند تحزيم برامجنا للعمل على الاجهزة الاخرى

مع وافر التحية أخى الكريم

ياحي يا قيوم برحمتك أستغيث ===>> أصلح لي شأني كله ولا تكلني إلى نفسي طرفة عين ..

موقع الطريق الى الله

http://www.way2allah.com/index.php

أكبر مكتبه للكتب الاسلامية

http://saaid.net/

أجمل التلاوات

http://www.tvquran.com/

مدونتي : http://akeshk.wordpress.com

#4

لقد ارفقت لك ملف عند تشغيله يقوم بتسيجل الادوات OCX & DLL

اتوماتيك

بس الموجودة بالملف ذاته يعني تضع الملف EXE المرفق في المجلد التي بها الاداوت ويقوم هو بتسجيلها

وثانياً غالب برمجيات التحزيم تقوم بالتسجيل اتوماتيك

UnRegMe.zip

#5

-09

الــ KING KING

اجوا منالاخوة تثبيت هذة المشاركة و يتم الاضافة بها لما لها من اهمية <_<

و شكرا

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

خبرى 6 سنوات فى فيجوال بيزك 6و ASP

#6

سنكمل يا اخواني

معنى اختصار API

هو Application Programming Interface

نأتي الان بعض المفاهيم :

لبرمجة الكائنية المنحى Object Oriented Programming OOP

وهي أرقى أنواع البرمجة وفيها يقسم البرنامج إلى وحدات تسمى الكائنات، والكائن هو كتلة من الدوال والمتغيرات، يستطيع الكائن أن يحاكي الأمور الحياتية بواقعية أكثر، فمثلا إذا كان عندنا كائن سيارة فإن للسيارة متغيرات خاصة بها ودوال خاصة بها أيضا، مثلا من متغيرات السيارة، كمية الوقود المتوفرة، وسرعة السيارة الحالية، ودرجة حرارة المحرك، ومن دوال السيارة دالة لزيادة السرعة، ودالة المكابح، ودالة تشغيل أضواء السيارة، تستطيع بهذه الطريقة أن تفهم أجزاء البرنامج أكثر، ويصبح المبرمج منظما أكثر، ففي السابق كنا نقول بأنك إذا أردت معلومة ما من قسم آخر يجب أن تكون هذه المعلومة متوفرة في الأرشيف العام ولكن هذا يؤدي إلى فوضى عارمة في الأرشيف، بحيث يمكن للمبرمج أن يعطي مثلا الإسم نفسه لمتغيرتين مختلفتين في الأرشيف ويحصل على نتائج غير متوقعة دون أن يعرف الخطأ بسهولة، والمشكلة الأكبر تحدث عندما يكون البرنامج عبارة عن مشروع ضخم يديره فريق كامل من المبرمجين، فتصبح عملية التنسيق بينهم صعبة جدا، في البرمجة الكائنية المنحى إذا كنت في قسم المبيعات وأردت أن تعرف عدد الأشخاص اللذين ذهبوا إلى قسم الدعم الفني خلال الأسبوع الماضي،فمن غير المعقول أن تدخل قسم الدعم الفني وتتجه إلى خزاناتهم وتبدأ بتقليب الأوراق بحثا عن المعلومة، وكما قلنا سابقا، فكرة الأرشيف أيضا فاشلة، لذلك فإن الحل هو أنك تتصل بقسم الدعم الفني وتسألهم ( كم عدد الزوار الذين زاروا قسمكم خلال الأسبوع الماضي؟ ) فتحصل منهم على النتيجة التي تريدها وتكمل عملك بشكل طبيعي، هنا قسم الدعم الفني وفر لك وظيفة جديدة أو دالة جديدة تعطيك عدد زوار القسم خلال الأسبوع الماضي، وبهذه الطريقة ستضمن أنت أنك تستطيع الحصول على المعلومة، ويضمن قسم الدعم الفني أنك لن تستطيع الوصول إلا إلى المعلومة التي تريدها، أو التي يحق لك معرفتها، ولن تستطيع تغيير محتوى الدالة لأنها مخفية عنك، وفي نفس الوقت لن تحتاج لمعرفة الطريقة التي يعمل بها قسم الدعم الفني داخليا أنت فقط تحصل على المعلومات من خارج قسم الدعم الفني بالوسائل المتفق عليها، أي من خلال واجهة الدعم الفني، يسمى قسم الدعم الفني في هذه الحالة بالصندوق الأسود، لأنك لا تحتاج لمعرفة ما بداخله، وتسمى واجهته بواجهة برمجة التطبيقات API، فلكل صندوق أسود واجهة برمجة تطبيقات خاصة به، هذا الصندوق الأسود هو الكائن الذي نتحدث عنه.

نعود بالحديث الآن إلى الكائنات، يتكون الكائن كما قلنا من جزأين أساسيين، الدوال والمتغيرات، وعملية إنشاء الكائن تتلخص في خطوتين، الخطوة الأولى هي تعريف البرنامج بشكل الكائن، والخطوة الثانية هي إنشاء الكائن حسب الشكل الذي حددته في الخطوة الأولى، ففي الخطوة الأولى ترسم الإطارات الخارجية وتكتب الدوال للكائن وتحدد متغيرات الكائن وتبين فيها العام والخاص ويسمى هذا بالصنف Class أي أنك تنشأ صنفا جديدا مثلا صنف السيارات، تحدد في وظائف السيارات ومتغيراتها، وفي الخطوة الثانية تقول للكمبيوتر أريد منك أن تنشأ لي سيارة إسمها LeGrouze مثلا، فسيعرف الكمبيوتر كيف سيكون شكل هذه السيارة لأنك عرفته من قبل كيف تكون السيارة، وتسمى السيارة الجديدة التي أنشأتها بالنسخة Instance لأنها عبارة عن نسخة عاملة من مخطط السيارات.

وقد رافقت فكرة البرمجة الكائنية ثورة عارمة وظهور لتقنيات وأفكار جديدة أهمها :

اشتقاق الكائنات Subclassing

يمكنك بهذه الطريقة عمل كائنات جديدة معتمدا على كائنات موجودة مسبقا، مع إضافة بعض الأجزاء إليها، إذا أردت أن تقوم بعمل صنف جديد لسيارات الجيب، فإنك تذهب إلى صنف السيارات الذي أنشأته سابقا وتضيف إليه ميزة الدفع الرباعي والناقل اليدوي والحجم الكبير وشكل الجيب المميز فيصبح عندك صنف جديد هو سيارات الجيب، ويقال هنا أن صنف سيارات الجيب صنف مشتق من السيارات Subclass وتسمى عملية الإشتقاق هذه بالـ Subclassing، ويقال هنا أن الجيب ترث صفات السيارة وهذه هي ميزة الوراثة Inheritance في البرمجة كائنية المنحى.

تعدد الأوجه Polymorphism

Poly يعني عديد و morphism يعنى الوجه أو الهيئة، تمكنك هذه الميزة من عمل أكثر من دالة لها نفس الاسم ولكنها تختلف في قائمة الوسيطات ( المدخلات ) فإذا كتبت اسم وظيفة فإن البرنامج سيرى ما هي المدخلات التي تريد أن تدخلها في هذه الوظيفة ويرى بعد ذلك ما هي الوظيفة التي تأخذ هذه المدخلات فيجعلها تعمل دون غيرها، ويمكن الإستفادة من ذلك في عدة أمور مثلا عملية الجمع بالنسبة للنصوص تختلف عنها بالنسبة للأرقام وتختلف عنها بالنسبة للكسور الإعتيادية، فهنا يمكنك عمل عدة وظائف بنفس الإسم، وإذا كتب هذا الإسم ووضعت فيه نصوصا كمدخلات فإن الوظيفة الخاصة بالنصوص هي التي ستنفذ وليست الوظيفة الأخرى الخاصة بالأرقام ولا الخاصة بالكسور، وهكذا.

ومن أشهر البرامح التي تعمل بأسلوب البرمجة الكانية المنحى C++ و Java و Visual Basic و Delphi وجميع لغات البرمجة الحديثة، وحتى لغات البرمجة القديمة تم تطويرها تعمل وفق نظام البرمجة الكائنية المنحى.

البرمجة المرئية Visual Programming

البرمجة المرئي هي عبارة عن أسلوب جديد للبرمجة، تستخدم فيه برامج مساعدة لتصميم واجهة الإستخدام ( الأزار والنصوص .. ) وربطها بالشفرة البرمجية، وتسمى هذه البرامج المساعدة ببيئة التطوير المدمجة Integrated Development Environment IDE.

في السابق كانت البرامج تستخدم ما يسمى بسطر الأوامر Command Line أو المحث، فكان يظهر البرنامج في صورة عدة أسطر ثم يتوقف ليقول لك .. ( أدخل اسمك ثم اضغط مفتاح Enter ) ولم يكن له وظيفة إلا انتظارك لتدخل إسمك ثم يكمل عمله طبيعيا، أما الآن ومع الواجهات الرسومية، تظهر أمام المستخدم عشرات الأزرار والخيارات والقوائم وغيرها، ولا يمكن للبرنامج أن يتوقع ما الذي سيحدث في الخطوة التالية، لذا فإن البرنامج يقسم إلى عدة وظائف ينفذ كل منها عندما يحدث ما يسمى بالحدث، نقرة الزر مثلا تعتبر حدثا، ضغط أحد المفاتيح يعتبر حدثا، الإتصال بالإنترنت يعتبر حدثا، كل هذه تعتبر أحداث، وتسمى الدالة التي تعمل عند حدوث الحدث بالدالة الحدثية أو الدالة المرتبطة بالحدث.

ومن أشهر بيئات التطوير الرسومية Visual C++ و Visual Basic و Visual J++ و Delphi و Borland C++ و Borland C++ Builder و Java Builder وغيرها الكثير، وتستخدم هذه البرامج نسخ محسنة من لغات البرمجة العادية والقديمة وتدمجها في بيئة التطوير الخاصة بها، لذلك فإن Delphi مثلا ليست لغة برمجة بمعنى الكلمة، وإنما هي بيئة تطوير تستخدم لغة محسنة من Pascal تتميز بميزات الكائنات وميزات أخرى فيطلق عليها مجازا لغة

Delphi

البرمجة الإجرائية Procedural Programming

البرنامج الإجرائي ما هو إلا لائحة من الأوامر فقط خطوة خطوة، وهي الطريقة التي يعمل بها المعالج والكمبيوتر بشكل عام لأن الكمبيوتر ينفذ ولا يفكر، يستخدم هذا الأسلوب لكتابة البرامج الصغيرة والمهمة جدا والتي تحتاج إلى ميزات عالية ووصول إلى أجزاء حساسة من الحاسوب مثل إدارة الإقلاع Booting ومن هذه اللغات البرمجية لغة Assembly.

البرمجة البنيوية Structured Language

وهو تطبيق عملي لمبدأ فرق تسد، حيث تقوم فكرتها على أساس تقسيم البرامج إلى عدة أقسام كل منها يستدعي الآخر، فمثلا إذا أردت أن تكتب برنامجا يقوم بحساب عدد الموظفين في الشركة، يمكن تقسيم عمل البرنامج إلى التالي :

1. فتح قاعدة البيانات

2. معرفة عدد السجلات

3. إغلاق قاعدة البيانات

4. عرض النتيجة

5. إغلاق البرنامج

إضافة إلى ذلك فإن هذا البرنامج بأكمله يمكن أن يكون مجرد وظيفة في برنامج آخر أكبر، وهكذا، توجد في هذه التقنية عدة دوال أو وظائف Functions كل وظيفة لها دخل خاص بها، وتعطي خرجا خاصا بها، ويتم تبادل هذه البيانات ( الدخل والخرج ) بين الدوال المختلفة فتستدعي كل دالة الأخرى وهكذا، وهذا يسهل العمل على المبرمج ويجعل الأمور تبدو واضحة أمامه، وإذا أراد تحسين البرنامج فهذا أمر سهل، فمثلا إذا أراد أن يغير أسلوب عرض النتيجة لن يضطر إلى البحث في سطور البرنامج عن الأماكن التي حدث فيها عرض النتيجة على الشاشة بل سيضطر فقط إلى تغيير الدالة التي تقوم بعرض النتيجة، ولن يضطر للمساس بباقي دوال البرنامج وسوف يظهر أثر التغيير الذي قام به في جميع الأماكن التي تستدعي الدالة التي غيرها، وفي هذا الأسلوب من البرمجة يتم تخزين البيانات في متغيرات، وهذه المتغيرات تكون إما عامة Public أو خاصة Private، المتغيرة العامة هي المشتركة بين جميع دوال البرنامج، والخاصة تظهر فقط في دالة محددة، لذلك لتبادل البيانات بين الدوال نستخدم متغيرات عامة، يمكن تشبيه الموقف بشركة كبيرة بها عدد من الأقسام ( الدوال ) كل قسم له وظيفته، البيانات الموجودة داخل القسم لا يستطيع أن يصل إليها إلا من في القسم، وإذا أردت أن تضع معلومات يستطيع الجميع الوصول إليها لا بد من وضعها في الأرشيف العام للشركة الذي يستطيع الوصول إليه والقراءة منه والكتابة إليه، ومن أشهر اللغات التي تستخدم هذا الأسلوب لغة C.

#7

بعض الدوال المهمة نوعاً ما

أولاً:

لأساسيات

الدالة chr

تقوم الدالة chr بأخذ قيمة بين 0 و 255 وتعيد الحرف الممثل لهذه القيمة في جدول رموز ASCII، على سبيل المثال العبارة التالية :

Hi,
I'm "mubarmej"

ستجد أنك لا تستطيع كتابتها بهذا الشكل

myText = "Hi," & vbCrLf & "I'm "mubarmej""

لأن البرنامج سيعتقد بأن نهاية السلسة النصية السابقة هي عند علامات الاقتباس التي تقع مباشرة قبل كلمة mubarmej وستظهر لك رسالة خطأ، لذلك فإننا نلجأ لاستخدام الدالة chr حيث أن رمز علامة الاقتباس المزدوجة في جدول ASCII هو 34، فتكون الصياغة الصحيحة للعبارة البرمجية السابقة كالتالي :

myText = "Hi," & vbCrLf & "I'm " & chr(34) & "mubarmej" & chr(34)

الدالة Len(string) Len

ستجد فيما بعد حاجة في كثير من الأحيان لمعرفة طول السلسلة النصية ( عدد الأحرف )، ولعمل ذلك استخدم الدالة Len، مرر إليها النص وستعيد لك عدد الحروف.

myLength = Len("mubarmej")

الدالة InStr

InStr([start ,]string1, string2[, compare]

يمكنك بواسطة هذه الدالة معرفة أول مكان يظهر فيه نص ما ضمن نص آخر أكبر منه.

الوسيطة الأولى هي وسيطة اختيارية تحدد مكان بدء البحث، أما الوسيطة الثانية string1 فتحدد السلسلة النصية التي سيتم البحث فيها، والوسيطة الثالثة string2 تحدد السلسلة النصية التي سيتم البحث عنها في السلسلة الأولى، أما الوسيطة الأخيرة فهي اختيارية أيضا وتحدد نوع المقارنة التي يجب إجرائها وهي تأخذ أحد الثوابت التالية :

* 0 - vbBinaryCompare

* 1 - vbTextCompare

والفرق بينهما هو أن الأولى تراعي حالة الأحرف والثاني لا تراعي حالة الأحرف.

في المثال التالي الدالة i ستحتوي على القيمة 1 :

i = InStr("mubarmej","m")

وأما المثال التالي فستحتوي i فيه على القيمة 6 :

i = InStr(2,"mubarmej","m")

حيث أن الدالة في المثال السابق ستبحث عن الحرف m بادءة من الحرف الثاني ولذلك فهي لن تجد الحرف الأول

الدالة str

Str(number)

قد تبدو الدالة str متشابهة مع الدالة chr، إلا أنها تؤدي وظيفة مختلف تماما، فهي تحول الأرقام إلى سلاسل نصية، وهي تفيد مثلا في حال أردت أن تقوم بالتحام بين رقمين فتقوم بتحويل كل منهما إلى سلسلة نصية وتطبق بينهما جمع السلاسل ( & ) الذي يختلف عن جمع الأرقام وبالتالي تحصل على سلسلة جديدة يمكنك أن تحولها إلى رقم من جديد، على سبيل المثال الدالة myNumber تحتوي على القيمة 123456.

myNumber = Str(123) & Str(456)

ستواجهك مشكلة في الشفرة السابقة حيث يقوم فيجوال بيسيك بإضافة مسافة قبل كل سلسلة نصية تنتج من الدالة السابقة، ستعرف فيما بعد كيف تعالج هذه المشكلة

تابع

#8

التقطيع من النص :

يمكنك أن تأخذ أجزاءا محددة من سلسلة نصية بعدة طرق مختلفة، يمكنك مثلا أن تحصل على الأحرف الثلاثة الأولى من بداية السلسلة النصية أو الأربعة الأخيرة أو خمسة أحرف بدءا من الحرف السادس وهكذا .

.

الدالة Left

Left(string, length)

حيث تقوم بوضع سلسلة نصية string وتحدد الجزء الذي تريد اقتطاعه من بداية السلسلة length، والتعبير بكلمة من بداية السلسلة أدق من يسار السلسلة لأن هذا قد يحدث اشتباها في السلاسل النصية للغات التي تكتب من اليمين إلى اليسار مثل العربية، هنا تعيد السلسلة العدد المحدد من الحروف من اليمين أي أنها لا تهتم لاتجاه ظهور أحرف السلسة وإنما اتجاه تخزينها، وللتخلص من هذه المشكلة سنقول بداية السلسلة

الدالة Right

مطابقة للدالة Left في كل شيء، إلا أنها تأخذ العدد المحدد من الحروف من نهاية السلسلة

الدالة Mid

Mid (string, start[ ,length])

تعيد الدالة Mid عددا من الأحرف قدره length بدءا من حرف معين هو start، في سلسلة نصية string لاحظ أيضا أن الوسيطة length اختيارية وإذا لم تمرر بها أي قيمة فإن الدالة ستعيد الأحرف إلى نهاية السلسلة .

في المثال التالي ستحتوي المتغيرة myText على العبارة 'm m :

myText = Mid("I'm mubarmej", 2, 4)

أما في المثال التالي فستحتوي على الكلمة mubarmej :

myText = Mid("I'm mubarmej", 5)

التصريح Mid

يقوم التصريح Mid باستبدال مقطع محدد من النص بنص آخر، وهو يكتب في صورة مشابهة جدا لطريقة كتابة دالة Mid ولكن توضع بعده علامة مساواة وبعدها العبارة الجديدة، في المثال التالي ستحتوي المتغيرة myText على القيمة I'm mubarmej :

name = "mubarmej"
myText = "I'm name"
Mid(myText, 5) = name

ملاحظة مهمة للغاية

حيث سيتم حذف الجزء المحدد بالخاصية Mid ويوضع الجزء الذي بعد علامة المساواة في مكان الجزء المحذوف

تم تعديل هذه المشاركة بواسطة ELKING في 21 يوليو 2005 في 07:46

#9

التحوير

يمكنك عمل الكثير من التغييرات والتحويرات في السلاسل النصية، الأمر يشبه تطبيق الفلاتر على هذه النصوص وتوجد العديد من هذه الفلاتر مدمجة في الإصدارة السادسة من فيجوال بيسيك، وفيما يلي أهمها :

الدالة LCase

LCase(string)

تعيد الدالة LCase نسخة من النص string تكون فيه جميع الحروف صغيرة Lowercase المتغيرة myText في المثال التالي ستحتوي على عبارة it works :

myText = "It Works"
myText = LCase(myText)

الدالة UCase

LCase(string)

نفس الدالة السابقة لكنها تقوم بتحويل الأحرف إلى كبيرة Uppercase.

الدالة strReverse

strReverse(string)

تعيد السلسلة string معكوسة، أي تبدأ من البداية وتنتهي من النهاية، المتغيرة myText في المثال التالي ستحتوي على العبارة emoclew :

myText = strReverse("welcome")

الدالة Replace

Replace(string1, string2, string3, start, count[, compare])

وتقوم باستبدال النص string2 بالنص string3 ضمن السلسلة string1، أي أنها تبحث في النص string1 عن النص string2 وعندما تجده فإنها تحذفه منه وتضع مكانه string3، ويمكن تحديد نقطة بداية البحث بالوسيطة start، وعدد مرات الاستبدال القصوى بالوسيطة count، ضع القيمة -1 لاستبدال الكل، وطريقة المقارنة بالوسيطة compare كما ذكر سابقا.

المتغيرة myText في المثال التالي ستحتوي على القيمة Hi Everyone :

myText = Replace("Welcome Everyone,", "Welcome", "Hi", 1, -1)
#10

اريد تفاعل واندماج مع الموضوع لاهميته للمبتدئين و في تنشيط المخ لاسترجاع هذه الدوال للمحترفين

تم تعديل هذه المشاركة بواسطة ELKING في 21 يوليو 2005 في 07:56

#11

بالنسبة الى

myText = "Hi," & vbCrLf & "I'm "mubarmej""

جربها بهذا الشكل ( حركة حلوة جدا :) )

myText = "Hi," & vbCrLf & "I'm ""mubarmej"""

و شكرا على الموضوع :)

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#14

الله يوفقك دنيا و آخرة

#16
اقتباس
ومن أشهر البرامح التي تعمل بأسلوب البرمجة الكانية المنحى C++ و Java و Visual Basic و Delphi

لا يا أخي الفيجوال بيسك 6 لا تتعامل مع مبدأ ال OOP بل الفيجوال بيسك . نت

#17

مواضيعك كويسه B) ولكن هذا عصر .net فلا داعي أبدا للرجوع الى الوراء لدراسة ال DAO أو حتى ADO العادية و نصيحة الى كل مبتدئ بالبرمجة أن يتجه للدوت نت ليواكب العصر و التطورات الجارية ........ هذه وجهة نظر

الأخ الكينج أخ عزيز علينا ....... وخلاص كلها أيام و يتم نشر أكبر دعايه له عبر الإنترنت بخصوص افتتاحة لشركته الجديده B) .........

#18

السلام عليكم ورحمة الله وبركاته

جزاك الله خيراً على مرورك اخي VB_Matrix لي سؤال هل انتقلت انت الى الدوت نت ام لا ؟

اذا اجابتك بلا نرجو التعليق ولماذا !!!!

ــــــــــ

الى crazy-man جزاك الله خيراً على تشريفك الموضوع

كلامك صحيح لكن ان

Visual Basic لا يعتبر لغة كائنيةالتوجه OOP حقيقية آلغات ++ ،C

SmallTalk او JAVA ، ولكنه يمكنك من محاآاة لغات OOP وتطبيق معظم مبادئها مع Visual Basic.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

وهذا مقطع من كتاب استاذنا الكبير تركي العسيري تحت عنوان

Visual Basic للجميع ( نحو برمجة آائنية التوجه OOP )

الفصل الخامس

البرمجة الكائنيةالتوجه OO

عرّفت الاصدارات VB2 ،VB1 و VB3 ان Visual Basic هي لغة برمجة مبنية على

الكائنات Object Based Programming Language –تختصر OBP ، اما نقطة التحول

آانت منذ انطلاق الاصدار VB4 والذي مكننا من اعتبار Visual Basic على انها لغة

برمجة آائنية التوجه Object Oriented Programming Language –تختصر -OOP

بعد اضافة ميزة تعريف الف ئات Classes على هذه اللغة، الا ان البعض يعترض على

وصف Visual Basic بانها OOP لعدم دعمها لبعض الميزات الاساسية للغات OOP

آالوراثة Inheritance ، إعادة التعريف OverLoading .... الخ، من ناحية اخرى فهو

يدعم المبدأ الاساسي للغات OOP وهو التغليف Encapsulation عن ط ريق تعريف

الفئات Classes والواجهات .Interfaces

خلاصة القول، Visual Basic لا يعتبر لغة آائنية التوجه OOP حقيقية آلغات ++ ،C

SmallTalk او JAVA ، ولكنه يمكنك من محاآاة لغات OOP وتطبيق معظم مبادئها .

ومن منطلق عنوان هذا الكتاب " Visual Basic للجميع - نحو برمجة آائنية التوجه "،

#20

ماشاء الله داخل بقوة يا كنج

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#21

محاكاة الشئ لا تعني فعل الشئ بذاته

ثم كيف يمكننا أن نقوم بانشاء Interfaces بالفيجوال 6 ؟؟ (اذا كان لديك أي مثال ضعه لأني لا أثق في الكلام فقط)

ان التمكن من التعامل مع ال Classes لا يعني ان اللغة تدعم ال OOP لأنك لو ذهبت و قرأت أي كتاب في العالم فان كل الكتب تتفق على المبادئ الأساسية لل OOP و هي كما ذكر في المقطع الذي أوردته

-Inheritance

-Polymorphism

-Overriding

-OverLoading

-Interfaces

اذا فكل لغة تدعم كل هذه المبادئ تعتبر لغة OOP...

فهل تتمكن لغة الفيجوال 6 عمل أي شئ من هذا ؟؟؟ و كما قلت سابقا اذا كانت كذلك أرجو ايراد أمثلة

و السلام عليكم

#22

غريبة مشرفي الدلفي هنا صحيح العلم نور

اشكرromanof على مرورك وتشريفك موضوعنا وشارك ان امكن

#23

كيف حالك اخي كريزي ايوة كده عاوزنها تولع

ههههههههههههههههههههههههههه ممكن ارد عليك وبكل بساطة لكن ليس الان لان لا يوجد مثال جاهز لدي اوكي لكن قريباً جداً واحفظ مكان يا حبيبي

#24

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

الحمد لله والصلاة والسلام على رسول الله محمد صلى الله عليه وسلم وبعد ...

نبذة سرية جداً عن اللي مدوخنا ومطلع عينينا !!!!!!!!!!

السؤال الآن ماهو OOP ؟

كثير من الناس قد يخلط في هذا المفهوم ونظراً لتعدد ماقيل عن هذا المفهوم فأحببت أن اشارك بما لدي من معلومات فلقد حصل لبس عند بعضهم وتعددت الأسئلة حول هذا المفهوم فمنهم من ربطه مباشرة بلغة php ومنهم من ربطه بأشياء اخرى متعددة وهي في حقيقة الأمر ليس لها علاقة بما ذكر عنها ...

وللتوضيح اكثر فإنه في عام 1971 ميلادي تم إنشاء لغة السي وهي لغة غنية عن التعريف ولكن تتصف بالإجرائية أي بإختصار تتصف بأنها تعتمد في مبدأها على البرمجة الهيكلية أي متغيرات وهياكل ودوال لا أكثر...

وبعد مرور زمن على هذا النوع من البرمجيات جاء مفهوم البرمجة الكائنية المنحى وهي (Object Orianted Programming)

كما يترجمونها وذلك على يد (بيجرن ستروسترب) في عام 1983 ميلادي

وظهرت بعد ذلك لغة سي++ وهي تطوير للغة سي أضيف اليه دعم OOP

و لغة الفيجوال بيسك لكن للمحاكاة هذه اللغة بمعنى لا يمكن عمل جميع الوظائف للـ oop بعضها وسأذكرها فيما بعد

ومن ذلك الوقت انطلق هذا المفهوم بين المبرمجين وصار سائداً..

بالنسبة لي فإختصار OOP هو كالتالي

OOP = علم الوراثة + لغة برمجة

أي بإختصار أن OOP ليست مقتصرة على لغة سي++

.................................................................................

ولكن أين المعنى في هذا الكلام ؟

عزيزي كل ماذكرته الآن هو مجرد نبذة تاريخية ولكن OOP ليست كائن جاء من الفضاء او من مكان بعيد في مجرد مفهوم سهل فقط يدرج تحت قاعدة :

(أي شئ في الكون له صفات ووظائف)

فكل ماعليك هو حفظ هذه العبار كأسمك ثم اترك الفهم علي

اذا رأينا القاعدة بشكل جيد فسترى ان هناك كلمة (صفات)

وهذه الصفات تكون في الشئ ولا يستطيع ان يفارقها مثل

الإنسان فهو من الأشياء الموجودة في الكون ولكن السؤال ماهي صفاته .

أنا عندما أقول إنسان فأنا اذكر شئ عام..

ولكن الصفات في اي انسان والتي لا يستطيع ان يتركها مثل اللون عدد الأرجل عدد الأيدي .

فإذا اتفقنا على هذه الصفات فتعال وخذ مثال اخر من الصفات مثل السيارة فمن صفاتها عدد الكفرات ولونها وموديلها ورقم لوحتها والحجم... إلخ

فأنظر الآن (الإنسان والسيارة) من الأشياء الموجودة في الكون وذكرنا بعض من صفاتها ويمكنك ان تضع اي شئ امامك وتخرج صفاته بنفسك.

هذه الصفات في عالم البرمجة تسمى (Propertes) أي خصائص ويتم تمثيل بالمتغيرات في لغات البرمجة (Variables) .

ولتتضح الصورة فبعد ان تخرج صفات اي شئ او خصائصه (وهي الأشياء التي لايمكن ان تنفك عنه كما اتفقنا في القاعدة) فإنه يمكنك التعبير عنها بالمتغيرات في أي لغة برمجة تستخدمها ففي مثال السيارة مثلاً يمكنني أن اعبر عن تلك الصفات او الخصائص (بلغة سي مثلاً) كالتالي:

[شفرة]

int car_size;

char* car_color;

فأنا الأن لدي خاصيتين من خصائص أو صفات السيارة وهي حجمها ولونها ...

وأرجوا أن تكون وصلت فكرت الخصائص والصفات والتي يتم تمثيلها بالمتغيرات.

أما الجزء الثاني في القاعدة فهو كلمة (ووظائف)؟

بالطبع لن اخرج عن مثال الإنسان والسيارة لكي لايحصل تشتت ذهني ..

المهم...

أما الوظائف فهي الأشياء التي يستطيع ان يعملها الكائن.

فمثلاً الإنسان له العديد من الوظائف وهي اشياء ليست مرتبطة به ويستطيع عملها في اي وقت اي هي ليست كاليد معه طوال الوقت .

فمن وظائف الإنسان : الجري والأكل والشرب والنوم والحركة والمشي والتوقف وغيرها الكثير ...

ومن وظائف السيارة : زيادة السرعة وخفضها و إيقاف السيارة كلياً وغيرها مثل تشغيل المنبه ....

المهم يطلق على الوظائف في لغات البرمجة (functions)

ويتم تمثيلها (اي الوظائف) بإستخدام مايسمى الدوال.

فمثلاً لزيادة سرعة السيارة إلى سرعة معينة فأنا سأحتاج لشئ كهذا:

void set_car_speed(unsigned int speed);

فأنظر إلى هذه الدالة او الوظيفة فهي تأخذ بارامتر واحد تعطى فيه السرعة للسيارة أو تحدد فيه السرعة بشكل اصح.

وبعد هذا الكلام الطويل تأتي الخلاصة المهمة وهي ان OOP جاءت ببرمجة الكائنات ولكن ماهي الكائنات المقصودة ؟

اذا رجعت الى القاعدة التي ذكرناها فستجد كلمة (اي كائن)

بإختصار الكائن في البرمجة يمكنك اخذه من القاعدة فالقاعدة تقول صفات ووظائف والبرمجة تقول ان الكائن متغيرات (variables) و دوال (functions)

ولتمثيل كائن كالسيارة في لغة C++ مثلاً فسأكتب :

class Car

{

   int car_size;

   char* car_color;

public:

     void set_car_speed(unsigned int speed);

};

انظر الى الكائن Car الآن فهو يتماشى مع القاعدة تماماً ويمكنك كتابة الكائن حسب ماتقتضيه قواعد لغتك فيمكنك كتابته في C++ او php او ... الخ.

لذلك اذا اردت ان تبرمج كائن (Object) قوي وممتاز بنفس الوقت فكل ماعليك هو ان تقوم بأخذ الشئ الذي ستصنع منه هذا الكائن مثل السيارة مثلاً وتقوم بالوقوف امامها وتسجل في ورقة جميع الصفات التي تراها عينك ثم تقوم بكتابة جميع الوظائف التي تقوم بها السيارة وبعد ذلك

قم تفصيل هذه الأشياء ودراستها بشكل منطقي ثم حولها حسب القاعدة التي ذكرنها الى كائن يتماشى مع لغتك فلو اردت ان اكتب كائن السيارة بلغة php فسأكتب شئ كالتالي :

class Car

{

  $car_size;

  $car_color;

 function set_car_speed($speed) {...};

}

فالمفهوم واحد ولكن الذي يختلف هو لغة البرمجة

وأرجوا أن أكون قد وفقت في إيصال الفكرة للجميع وأسف إن حصل مني خطأ أو تقصير ...

وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله جل وعلا

#25
اقتباس
بالنسبة لي فإختصار OOP هو كالتالي

OOP = علم الوراثة + لغة برمجة

هذا تعريف خاص بك و لا يعنيني و لا أدري ماذا تعني بعلم الوراثة !!!!! اما اذا كنت تعني بها الوراثة التي تعتبر مبدأ أساسي من مبادئ ال OOP فقد أوقعت نفسك في مأزق !!! لماذا ؟؟ لأنه لو فرضنا جدلا أن تعريف لل OOP صحيح فاذا أي لغة برمجة + الوراثة فهي = OOP ... و هل ال VB6 تدعم الوراثة !!!! أشك في ذلك

اما بالنسبة لكلامك حول ال properties و ال Functions فأنت تقوم هنا باعطائنا شرح مبسط لما هو ال Class و ال CLASS ليس ميزة لل OOP بل كما ذكرت سابقا المبادئ التي تميز اللغات التي تدعم ال OOP عن غيرها هي دعمها ل :

-Inheritance

-Polymorphism

-Overriding

-OverLoading

-Interfaces

و هذا شئ انا لا أقوله من فراغ و انما قرأته في أكثر من كتاب (غربي) و على فكرة ماالشئ الذي يعتبر جديدا في ال VB.NET مقارنة مع ال VB6 ؟؟ اليس دعمها لل OOP

و ملاحظة أخيرة نحن هنا في قسم ال VB6 لذا من الأفضل طرح الأمثلة بلغة ال VB حتى يفهمها من يتتبع الموضوع فليس الكل ملم بالسي

و السلام عليكم

-----

استدراك ::::

هذا كتاب حول ال OOP في ال VB.NET لمن يهمه الأمر

/index.php?showtopic=70127

-----

تم تعديل هذه المشاركة بواسطة crazy-man في 24 يوليو 2005 في 06:26

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

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