الدرس الثامن عشر إنشاء مفكرتي الخاصة الجزء السادس
مرحبا بكم في الدرس الثامن عشر من دروس لغة البرمجة c#
في الدرس السابق قمنا بإضافة خاصية وميزة البحث لمفكرتنا
وقد ركزنا في شرحنا على كيفية إضافة إطار جديد وذلك باستخدام بيئة التطوير visual studio
لهذا السبب دعونا في بداية هذا الدرس نتعرف على طرق البحث في لغة c#
لإجراء عمليات البحث في النصوص توجد العديد من العناصر أو الخصائص التي يمكن إستخدامها
مثل خاصية IndexOf والتي إستخدماناها في الدرس السابق
وخاصية LastIndexOf وهي عكس الخاصية السابقة وتبدأ نقطة البحث من آخر حرف في النصوص
وخاصية Contains وهي للتحقق فقط من وجود كلمة البحث من عدمها
وخاصية StartsWith وهي للبحث في أول النصوص فقط
وخاصية EndsWith وهي للبحث في آخر النصوص فقط
وفي ما يلي بعض الأمثلة لطرق إستخدام هذه العناصر
أولا خاصية IndexOf
باستخدام هذه الطريقة
إذا تم العسور على كلمة البحث تكون النتيجة 0 أو أحثر
وإذا لم نحصل على كلمة البحث تكون النتيجة هي -1
بمعنى إذا تم العسور على كلمة البحث ينتقل المؤشر إلى أول حرف من كلمة البحث المستخدمة
ملحوظة عند حساب عدد حروف النصوص نبدأ من الرقم 0 وليس من الرقم 1 فنرجوا الإنتباه
ومثال لطريقة الإستخدام هو كما يلي
string str = "الحمد لله رب العالمين";// وهذا هو متغير يحتوي على النص المراد البحث فيه
string target = "ل"; // وهذا هو متغير يحتوي على كلمة البحث
int num = str.IndexOf(target); // قمنا بإذافة نتيجة البحث إلى المتغير num
نقوم أولا بكتابة المتغير المحتوي على النص ثم نقطة ثم اسم الخاصية الخاصة بالبحث وبين القوسين نقوم بكتابة كلمة البح
ملحوظة إذا قمنا بكتابة كلمة البحث فقط بين القوسين فهذا يعني أن نقطة البداية تكون من أول حرف في النص
أما إذا أردنا تعيين نقطة بداية البحث
بعد كلمة البحث نقوم بكتابة علامة الفاصلة أو , ثم نفطة البداية ثم قفل القوس
int num = str.IndexOf(target, 5); // ففي هذه الحالة سوف تبدأ عملية البحث من الحرف السادس وذلك لأننا نبدأ الحساب من الرقم 0
وللتحقق من نتيجة البحث نقوم بالتأكد من قيمة المتغير للأرقام الصحيحة والذي أضفنا إليه نتيجة البحث
if(num >= 0) { // إذا كانت قيمة المتغير 0 أو أكبر ن 0
Console.WriteLine("توجد كلمة البحث");
} else {
Console.WriteLine("لا توجد كلمة البحث");
}
أما بالنسبة لخاصية LastIndexOf
فهي مطابقة لطريقة إستخدام خاصية indexOf
والفرق الوحيد هو أن نقطة بداية البحث من آخر حرف موجود في النص
أما الخاصية الثالثة من خصائص البحث
هي خاصية Contains
وتستخد هذه الخاصية للتحقق فقط من وجود أو عدم كلمة البحث
فإذا كانت عملية البحث بالإيجاب تكون النتيجة true
وإلا فتكون النتيجة false
string str = "الحمد لله رب العالمين";// وهذا هو متغير يحتوي على النص المراد البحث فيه
string target = "ل"; // وهذا هو متغير يحتوي على كلمة البحث
if(str.Contains(target)) {// إذا كانت توجد كلمة البحث
Console.WriteLine("توجد كلمة البحث");
} else {
Console.WriteLine("لا توجد كلمة البحث");
}
وأخيرا لمعرفة أول وآخر كلمة أو حرف في النصوص نقوم باستخدام
خاصية StartsWith للبحث في أول النصوص فقط
وخاصية EndsWith للبحث في آخر النصوص فقط
وذلك كا موضح في المثال التالي
string str = "الحمد لله رب العالمين";// وهذا هو متغير يحتوي على النص المراد البحث فيه
if (str.StartsWith("الله")) // إذا كانت كلمة اللغ توجد في أول النص
{
Console.WriteLine("توجد في أول النص");
}
else
{
Console.WriteLine("لا توجد في أول النص");
}
والمثال الثاني هو
if (str.EndsWith("العالمين")) // إذا كانت كلمة البحث توجد في آخر النص
{
Console.WriteLine("توجد في آخؤ النص");
}
else
{
Console.WriteLine("لا توجد في آخر النص");
}
وبالإضافة لهذه العناصر توجد خاصية يمكن من خلالها إجراء عمليات البحث المتقدم
وسوف نتطرق لها في دروسنا القادمة إنشاء الله
ولتحميل المشروع المستخدم في هذا الدرس الرجاء الضغط على رابط
محتوى الدرس الثامن عشر
ومن خلال مشروع اليوم قمنا بإضافة ميزة جديدة لمفكرتنا
وهي ميزة تمكننا من البحث وإستبدال كلمة البحث بأي كلمة نريد
ويكننا استبدال كلمة كلمة أو إستبدال كافة الكلمات المستهدفة دفعة واحدة
وللعلم السطور البرمجية المستخدمة في عملية الإستبدال مشابهة ولحد كبير لسطور عملية البحث
لهذا السبب وبالنسبة للأشخاص الذين استوعبوا محتوى الدرس السابق فإن محتوى هذا الدرس يكون سهلا ولا يستحق كثير عناء لفهمه
ولتسهيل الفهم في هذا الدرس أيضا قمنا بجعل السطور البرمجية والخاصة بالإستبدال في ملف منفصل وسميناه باسم replace.cs
ولإضافة الملف الجديد قمنا بإتباع نفس الخطوات التي إتخذناها في الدرس السابق
لذا ننصح بمراجعة محتوى الدرس السابق بصورة جيدة حتى نتمكن من فهم محتوى هذا الدرس
وقد قمنا بإضافة ملفين إلى مشروعنا وهما ملف replace.cs وملف replace.designer.cs
الثاني لتسمية وتعيين العناصر المختلفة والملف الأول لإجراء العمليات وتنفيذ الأوامر المختلفة
فنرجوا مراجعة محتوى هذين الملفين جيدا حتى نتعرف على العناصر والسطور البرمجية التي تحتوي عليها
وقد قمت بكتابة جميع الملاحظات والتوجيهات من خلال هذه الملفات كما عودتكم حتى يسهل على الجميع فهم واستيعاب محتوى السطور البرمجية
فنرجو مراجعتها بصورة جيدة
ولإستدعاء ملف الإستبدال وإجراء عملية الإاستبدال قمنا بإضافة عنصر جديد للقائمة الرئيسية بالبرنامج باسم إستبدال
وجعلت مفاتيح إختصاره هو مشابه لكثير من محررات النصوص الأخرى
ومفتاح الإختصار الخاص بعملية الإستبدال هو مفتاح التحكم مع حرف H وذلك لإظهار نافذة الإستبدال الجديدة
وكما ذكرنا في المرة السابقة اختصارا للوقت والمساحة سوف لن نقوم بنشر محتوى ملفات البرمجة هنا
فنرجوا مراجعتها من خلال ملف البرنامج الرئيسي وملفات البحث الخاصة
وبالنسبة للملف الثاني من ملفات الإستبدال قمنا بإضافة مربعي تحرير لكتابة كلمات البحث والثاني لكتابة كلمات الإستبدال
وأيضا أضفنا 3 أزرار أولهما لإجراء عملية الإستبدال التالي والثانيهما لإستبدال كافة الكلمات وثالثهما لإلغاء الأمر والخروج من النافذة
وفي لغة c# يمكننا استخدام خاصية replace لإستبدال الكلمات التي نريد
ومثال على طريقة إستخدام هذه الخاصية هو كما يلي
string new = "السلام عليكم ورحمة الله تعالى";// متغير يحتوي على النص المستهدف
string find = "تعالى"; // متغير يحتوي على الكلمة المراد البحث عنها واستبدالها
string replace = "تعالى وبركاته"; // متغير يحتوي على الكلمة المراد الإستبدال بها أو الكلمة الجديدة
string newData = new.Replace(find, replace);// إجراء عملية الإستبدال وإضافة النتيجة للمتغير newData
وطريقة كتابتها هو كما موضح أعلاه
نقوم بكتابة المحتوى ثم نقطة ثم اسم خاصية الإستبدال ثم بين القوسين نقوم بكتابة كلمة البحث والمراد إستبدالها
ثم فاصلة ثم كلمة الإستبدال الجديدة
ولمعرفة المزيد عن كيفية إستبدال النصوص الرجاء مراجعة ملف replace.cs
وفي الختام نتمنا أن نكون قد وفقنا في درسنا لهذا اليوم
وأيضا نتمنا مراجعة محتوى هذا الدرس بصورة جيدة حتى يسهل علينا الاستمرار في الدروس القادمة
كما يسرني استقبال أسألتكم وذلك من خلال المنتدى العام أو من خلال مجموعة البريد الإلكتروني
للذهاب إلى صفحة المتدى العام الرجاء الضغط على رابط
وللإشتراك في مجموعة البريد الإلكتروني الرجاء الضغط على
الإشتراك بمجموعة البريد الإلكتروني وإلغاء الإشتراك