tajmh.yoo7.com
أهلا وسهلا بزائرتنا الكريمة , وبزائرنا الكريم في منتدى التجمع من اجل الديمقراطية والوحدة في سوريا

نرجو التسجيل في المنتدى لغير المسجلين والدخول والمشاركة المفيدة البناءة ..وشكرا

إدارة المنتدى


انضم إلى المنتدى ، فالأمر سريع وسهل

tajmh.yoo7.com
أهلا وسهلا بزائرتنا الكريمة , وبزائرنا الكريم في منتدى التجمع من اجل الديمقراطية والوحدة في سوريا

نرجو التسجيل في المنتدى لغير المسجلين والدخول والمشاركة المفيدة البناءة ..وشكرا

إدارة المنتدى
tajmh.yoo7.com
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
المواضيع الأخيرة
» هم اذكياء بالفطرة
المجموعة الاخيرة فيجوال Empty29/7/2017, 11:29 am من طرف جبران جمول

» متى ستصحو وزارتي التربية والتعليم العالي
المجموعة الاخيرة فيجوال Empty8/7/2017, 5:33 pm من طرف جبران جمول

»  قليلا من الصدق يا محللين
المجموعة الاخيرة فيجوال Empty2/7/2017, 7:29 pm من طرف جبران جمول

» امريكا وطبيعة المفاهيم والعقائد السائدة
المجموعة الاخيرة فيجوال Empty28/6/2017, 7:59 am من طرف جبران جمول

» فلم خيالي من الواقع
المجموعة الاخيرة فيجوال Empty7/6/2017, 4:02 pm من طرف جبران جمول

» مناهجنا
المجموعة الاخيرة فيجوال Empty5/6/2017, 8:30 pm من طرف جبران جمول

» اللعب عالمكشوف ... لمن يملك الطرنيب
المجموعة الاخيرة فيجوال Empty7/10/2016, 11:43 am من طرف الأمين العام

» خبير أمريكي: "الرواية الرسمية لعمليات سبتمبر الإرهابية مزيفة
المجموعة الاخيرة فيجوال Empty13/9/2016, 9:33 am من طرف جبران جمول

» ماذا عن الاله بعل بعض المعلومات
المجموعة الاخيرة فيجوال Empty6/8/2016, 12:20 pm من طرف جبران جمول

» سلمية تحارب بالكهرباء بالمياه
المجموعة الاخيرة فيجوال Empty12/7/2016, 7:27 pm من طرف جبران جمول

» أسئلة برسم الفقهاء والعلماء فهل من مجيب
المجموعة الاخيرة فيجوال Empty12/7/2016, 7:13 pm من طرف جبران جمول

» متى نبتعد عن السلفية في افكارنا .؟
المجموعة الاخيرة فيجوال Empty8/7/2016, 11:12 am من طرف جبران جمول

» مبروك لقطر مبروك للخليج
المجموعة الاخيرة فيجوال Empty5/8/2015, 6:58 pm من طرف الأمين العام

» ممثل الرئيس في سلمية لحل الأزمة
المجموعة الاخيرة فيجوال Empty16/7/2015, 11:07 pm من طرف الأمين العام

» عاجل جدا .... رؤيا نتمنى أن تلقى آذان صاغية .
المجموعة الاخيرة فيجوال Empty12/7/2015, 8:24 pm من طرف الأمين العام

اللعب عالمكشوف ... لمن يملك الطرنيب

7/10/2016, 11:43 am من طرف الأمين العام

اللعب عالمكشوف ... لمن يملك الطرنيب


بعد ست سنوات من الحرب الطاحنة و التخفي لكل دولة وراء الدعم المقدم لقوى …

تعاليق: 0

مبروك لقطر مبروك للخليج

5/8/2015, 6:58 pm من طرف الأمين العام

مبروك لقطر مبروك للخليج ....

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

تعاليق: 0

ممثل الرئيس في سلمية لحل الأزمة

16/7/2015, 11:07 pm من طرف الأمين العام

المجموعة الاخيرة فيجوال G

تعاليق: 0

عاجل جدا .... رؤيا نتمنى أن تلقى آذان صاغية .

12/7/2015, 8:24 pm من طرف الأمين العام

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

تعاليق: 0

ماذا بعد يا صاحب القرار

9/7/2015, 9:41 pm من طرف الأمين العام

ماذا بعد يا صاحب القرار .....
هاهو التلفزيون السوري الرسمي  يفصحُ بما عجزَ عنه الناس  .. ويفضحُ بما لا يقبل الشك …

تعاليق: 0

الشعب يتساءل ......

7/7/2015, 9:54 pm من طرف الأمين العام

بيان :
الشعب يتساءل ......
إننا لا نتكلم في السياسة لان السياسة بأساسها هي علاقة أوجدها الإنسان ليستطيع من …

تعاليق: 0


المجموعة الاخيرة فيجوال

اذهب الى الأسفل

المجموعة الاخيرة فيجوال Empty المجموعة الاخيرة فيجوال

مُساهمة  Admin 13/5/2007, 5:14 pm

معالجة النصوص في الفيجول بيسيك

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



مقدمة

ملاحظة:

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



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



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



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



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

Dim myText As String



لكي نقوم بوصل ( لحم ) أكثر من سلسلة نصية بعضها ببعض فإننا نستخدم المعامل & أو المعامل + ، ويتم إحاطة النصوص في فيجوال بيسيك بأقواس اقتباس مزدوجة ( " )، بالنسبة للثوابت يوجد ثابت واحد مهم هو vbCrLf، وهو عبارة عن ثابت السطر الجديد، إذا أردت الآن أن تضع العبارة التالية في متغيرة :



Hi,

I'm mubarmej



ستحتاج إلى كتابة الشفرة التالية لعمل ذلك :



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

























[color=red]الأساسيات[color:e4b5=maroon:e4b5]


[color=red]الدالة chr[color:e4b5=red:e4b5]

chr(code)

تقوم الدالة 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)



[color=red]- الدالة Len[color:e4b5=red:e4b5]

Len(string)

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

myLength = Len("mubarmej")



[color=red]-الدالة InStr[color:e4b5=red:e4b5]

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

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



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

1 - vbTextCompare





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



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

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

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

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



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







[color=red]-الدالة str[color:e4b5=red:e4b5]

Str(number)

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

myNumber = Str(123) & Str(456)



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




[color=red]- الدالة LCase[color:e4b5=red:e4b5]

LCase(string(

لتحويل النص من الأحرف الكبيرة إلى الصغيرة.



مثال:

Text1 = "IT WORKS"

Text2 = LCase(Text1)



- [color=red]الدالة UCase[color:e4b5=red:e4b5]

UCase(string)

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

[color=red]- الدالة strReverse[color:e4b5=red:e4b5]

strReverse(string)

تعيد السلسلة string معكوسة، أي تبدأ من البداية وتنتهي من النهاية

myText = strReverse("welcome")

[color=red]-الدالة Replace[color:e4b5=red:e4b5]

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)
الاقتطاع


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



[color=red]-الدالة Left[color:e4b5=red:e4b5]

Left(string, length)

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

Text1 = Left("abcdefgh", 3)

-[color=red]الدالة Right[color:e4b5=red:e4b5]

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



[color=red]- الدالة Mid[color:e4b5=red:e4b5]

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(



[color=red]التصريح Mid[color:e4b5=red:e4b5]

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



name = "mubarmej"

a = "I'm name"

Mid(a, 5) = name

Text2 = a

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



ملاحظة يعتبر التصريح Mid عملية تحوير أكثر منها اقتطاعا.


Admin
Admin

عدد الرسائل : 34
تاريخ التسجيل : 26/03/2007

https://tajmh.yoo7.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى