أخبار

 

تسجيل الدخول

أهلا, زائر. الرجاء الدخول أو التسجيل
تàهàèز 25, 2008, 11:24:06
اسم المستخدم: كلمة المرور:
تسجيل الدخول باسم المستخدم، كلمة المرور و مدة الجلسة

هل نسيت كلمة المرور؟

الإحصائيات

Members: 659
News: 194
Web Links: 3

مواضيع ذات صلة

آخر 10 أعضاء

ferass
nadaa
bozo2008
ayhambaker
slika
asdfgr_3
maha_shakkah
zaki_ncc
alitv
saa

إعلانات

Google
 
عالم الفيجوال بيسك دوت نت منتديات عالم الفيجوال بيسك دوت نت
جووجل
كيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال Linq PDF Print E-mail
User Rating: / 0
PoorBest 
Written by أيوب جمال الإدريسي   
انسبت, 02 شبا× 2008
بسم الله الرحمن الرحيم


مقدمة :

كنت قبل مدة بكتابة مقال حول ال LINQ في الفيجوال بيسك 9 :
نظرة على جديد الفيجوال 9 -الجزء الأول
نظرة على جديد الفيجوال 9 -الجزء الثاني
و قام الأخ سامر سلو أيضا مشكورا بكتابة دروس حول الجديد في ال VS2008 من ضمنها مقدمة لتقنية ال LINQ و تجدونها هنا :
دروس Visual Basic 2008

الآن و بعد قراءتك لهذه المقدمات لهذه التقنية دعنا نخوض في التفاصيل و البدأ بعمل أمثلة حتى نستطيع فهم التقنية أكثر فأكثر، أنت تعلم أن هذه التقنية يمكن استعمالها مع كل أنواع البيانات تقريبا يعني ممكن نعمل بها مع الكائنات Objects و ال XML و ال SQL.
الآن سوف نقوم بالخوض في استعمالات ال LINQ مع النصوص (LINQ And Strings) لذا سيكون درسنا الأول بعنوان : كيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال LINQ.

التفاصيل
المثال الذي سأطرحه هوفقط من أجل شرح امكانية استعمال ال LINQ من اجل البحث في نص معين و تعداد تكرار كلمة معينة لذا لن نبحث في تسريع الكود او أمور أخرى و لن يكون الكود احترافي لأنه و بكل بساطة من اجل عمل ما نريد يمكنك استعمال Methods أخرى منها Matches التي تستعمل ال Regular Expression أو الخاصية IndexOf لذا لو كنت بصدد عمل برنامج كامل لا أنصحك باستعمال ال LINQ لكن دعه لأمور أكثر تعقيدا و احترافية و التي قد نراها لاحقا، من أجل تنفيذ ما نريد قم بانشاء مشروع جديد في الفيجوال ستوديو 2008 من نوع Windows Application وطبعا نوع ال FrameWork هو 3.5 الآن اضف TextBox و Button بعد الدخول الى الكود قم باستيراد فضاء الأسماء :
كود
Imports System.LINQ

الكود في ال Button سيكون كالتالي :

كود

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Text As String = "this is a simple text that we will use it in our exemple so if you are interested pleaz let a comment coz that will mean that you love VB9 like me"
        Dim WordOccurences As Integer
        Dim SplitText() As String = Text.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries)
        Dim OurQuery = From word As String In SplitText Where word.ToLower = TextBox1.Text.ToLower Select word
        WordOccurences = OurQuery.Count
        MsgBox(WordOccurences)
    End Sub


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

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

هناك نقطة مهمة وهي أنه اذا اردنا ان نبحث في نص بواسطة ال LINQ يجب تحويل النص الى Array وذلك ماقمنا به الآن حيث استعملنا خاصية Split وقسمنا النص تبعا للفراغات الموجودة فيه و بالنسبة ل StringSplitOptions.RemoveEmptyEntries فهي ببساطة تقوم بحذف ال Elements الفارغة

الآن النقطة المهمة و هي كتابة ال Query الخاصة بالبحث و ال Query هي :

كود
From word As String In SplitText Where word.ToLower = TextBox1.Text.ToLower Select word

لنترجمها للغةالعربية biggrin.gif
من word في SplitTest حيث word.ToLower =
TextBox1.Text.ToLower اختر word

هههههههه
المهم word هنا هو متغير قد يقول البعض "لكن انت لم تقم بتعريفه ؟؟؟" أقول له اذن أنت لم تقرأ المقدمات التي ذكرتها في المقدمة biggrin.gif
المتغير اذن هنا سيكون String وبكل بساطة المتغير word سوف يحتوي كلمرة على Element من ال Elements الموجودة في ال Array التي أنشأناها من النص SplitText و طبعا لن يرجع كل الكلمات لكن على حسب الشرط المحدد :
كود
Where word.ToLower = TextBox1.Text.ToLower

أضفنا .ToLower فقط للبحث عن الكلمات كيفما كانت يعني لوبحثنا عن THe فسيرجع كل ال Occurences لهذه الكملة كيفما كانت حالة أحرفها (the,ThE,THE..)
أخيرا نريد معرفة عدد التكرارات الشئ الذي سنعرفة من خلال السطر التالي :
كود
WordOccurences = OurQuery.Count

طبعا كما ترون OurQuery لها خاصية Count التي تعيد عدد النتائج
ونظهر النتيجة بعد ذلك في MsgBox
وهكذا نكون قد انتهينا و بقي لكم فقط التطبيق و الاستمتاع بجديد الفيجوال بيسك 9
خاتمة :
أتمنى أن تكون هذه اللمحة قد أفادتكم و نلتقي في باذن الله في درس مقبل لتكملة ال LINQ And STRINGS
و السلام عليكم



Add as favourites (72) | Quote this article on your site | Views: 1117 | E-mail

Be first to comment this article
RSS comments

Only registered users can write comments.
Please login or register.

Powered by AkoComment Tweaked Special Edition v.1.4.6
AkoComment © Copyright 2004 by Arthur Konze - www.mamboportal.com
All right reserved

Last Updated ( انأربظاء, 11 حزêراو 2008 )
 
< Prev   Next >
Advertisement

جميع حقوق الطبع محفوطة لموقع عالم الفيجوال بيسك دوت نت


hit counter