الإكمال التلقائي في مربع النص TextBox AutoComplete With Csharp

السلام عليكم ورحمة الله وبركاته، من الأسئلة التي طرحت علي فيما مضى هو كيفية جعل مربعات النص تقوم بعملية الإكمال التلقائي سواء من خلال إظهار اقتراحات Suggest مثل تلك الموجودة في محركات البحث (غوغل مثلا) أو من خلال الإدراج Append في نفس مربع البحث (شريط العنوان في متصفح غوغل كروم مثلا).
خلال هذا الدرس سوف نتعرف على هذا الأمر بسهولة من خلال استخدام خصائص AutoComplete المصحوبة لمربع النص في الدوت نيت وجعل الإكمال التلقائي يستند إلى جدول في قاعدة بيانات من نوع SQL Server، ويمكنك تحديد مصدر البيانات الذي تريد بنفس الطريقة، ويمكنك تطبيق نفس العملية في الفيجوال بسيك دوت نيت دون مشاكل.

لا تنس الاشتراك في القناة ومشاركة هذا الدرس مع أصدقائك :)

التثريب على المتقاعسين من أهل التعريب


بعد أن تحررت بلدان المشرق والمغرب العربي من براثين الاحتلال، بدأت في شق طريق النهضة والتقدم، وأدركت أن لا تقدم ولا نهضة إلا بعد  تعريب كل المجالات التي سرت فيها لوثة المحتل، لأن اللغة أصل الفهم، ولكي يفهم الجيل الناشىء العلوم والتكنولوجيات عليه أن يجدها باللغة التي يفهمها.
من هذا المنطلق بدأت معظم الدول في تعريب المناهج التعليمية بدرجات متفاوتة، فبين دول عربت  التعليم العام في كل مراحله بدء من الطور الابتدائي وانتهاء بالطور الجامعي مرورا بالأطوار الإعدادية والثانوية (دول الخليج نموذجا)، وبين دول عربت طورا دون طور (دول المغرب العربي نموذجا).
وكما تذكر الموسوعة العربية العالمية، فإن الحاجة الكبرى إلى عمليات التعريب دفعت مجموعة من الأقطار العربية إلى إنشاء مجامع لغوية "على غرار مراكز التعريب التي ازدهرت في العصر الأمويّ والعباسي خاصة وجعلت من اللغة العربية آنذاك لغة الثقافة والحضارة والعلم، إلى جانب كونها لغة الدين." بغرض مواكبة الثورة العلمية الحديثة، ومحاولة نقلها إلى العالم العربي بصيغة مفهومة تقوم على ترجمة كل المصطلحات الأجنبية إلى مصطلحات عربية.
ولا يستطيع أحد أن ينكر فضل هاته المجامع والتنسيقيات والمعاهد والمكاتب التي لم تذخر جهدا في سبيل ترجمة كل المصطلحات الدخيلة وإيجاد مفردات مقابلة لها في اللغة العربية سعيا منها لمواكبة هذا الزخم المعرفي والتطور العلمي الهائل في العالم الغربي، ولا يقدر أحد أن يجحد بأن هذا الجيل جنى ثمار هذه المؤسسات من خلال القواميس العديدة التي أصدرتها، وأبرز هذه المجامع: المجمع العلمي العراقي، مجمع اللغة العربية الأردني، مجمع اللغة العربية المصري، المكتب الدائم لتنسيق التعريب بمدينة الرباط عاصمة المغرب، ويعد هذا الأخير ـ حسب الموسوعة العربية العالمية ـ صاحب فضل عظيم في "تنسيق وتوحيد مصطلحات 20 علما إلى حدود عام 1981، وبلغ عدد تلك المصطلحات 67 061 مصطلحا، كما قام المكتب بإصدار مجلته اللسان العربي منذ شهر يونيو عام 1964م، ونشر المصطلحات العلمية والمعاجم في الرياضيات والفيزياء والكيمياء والفقه والقانون والأشغال العامة والسياسة وغيرها من شؤون الحياة."
لكن في السنوات القليلة الأخيرة، بدأ نشاط هذه المجامع يضعف وعطاؤها يندر إزاء ثورة معرفية هائلة تستلزم تكثيف الجهود لمسايرة متطلبات العصر عبر تعريب مصطلحات هذه المعارف والتقنيات الجديدة ومحاولة إفراد قواميس متخصصة يعود إليها كل من أراد الكتابة في علم من هذه العلوم.
الكاتب العربي اليوم، الذي يكتب في مجال التقنية أو البرمجة أو الشبكات أو الإعلاميات عموما، يجد صعوبة بالغة في ترجمة الكلمات الأعجمية إلى اللغة العربية لأنه ليس من أهل الفن وليس له باع طويل في اللغة العربية فتجده يتخبط في الترجمة فيعرب كلمة دخيلة بما لا علاقة له بالمفهوم الأصلي للكلمة (مثلا في البرمجة تتم ترجمة الكلمة Class إلى "فئة" وهذه الكلمة لا تعكس جوهر الكلمة الأصل)، لا عتاب ولا لوم ولا تثريب على هؤلاء الكتاب، لأنهم ليسوا مجبرين بأن يكونوا من علماء اللسانيات أو من نوابغ النحو و الإعراب ليتمكنوا من إيجاد المرادف السليم لكل كلمة أعجمية، لكن اللوم كل اللوم والتثريب كل التثريب على أهل التخصص الذين لم يوفروا لهذا الكاتب قاموسا يعود إليه ليجد المصطلح السليم المتفق عليه عربيا فيستعمله في كتاباته.
اليوم، اللغة العربية في أمس الحاجة ـ أكثر من أي وقت مضى ـ إلى أهل التخصص في التعريب والترجمة لكي يبدؤوا في البحث عن الكلمات المستخدمة في المعلوميات ويحاولوا أن ينسقوا مع المجامع العربية الأخرى ويوحدوا جهودهم ليخرجوا بقواميس ومعاجم يعود إليها كتاب المعلوميات، وذلك سيجعل لغتنا العربية لغة قوية مواكبة لتغيرات العصر، بالإضافة إلى إغنائها بزاد مهم من الكلمات العلمية والتقنية.

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

أساطير برمجية - أبو الأكواد ونظام الويندوز

كان الشاعر "أبو الأكواد الليثي" شاعرا هَجَّاءً، بذيء اللسان، فاستدعاه ذات يوم إلى قصره الخليفة المنصور، وقال له: امدح شركة أبل، فرد عليه أبو الأكواد: عذرا مولاي هذا ليس تخصصي معي شهادة ICDL في الهجاء فقط.

فرد عليه المنصور: طيب أسمعنا شيئا من الهجاء وياليتك توجه سهامك إلى شركة ميكروسوفت.

ابتسم أبو الأكواد بخبث ثم رد بهدوء: أمرك يا مولاي، ثم بدأ:

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

فغر الخليفة فاه في ذهول وهو يقول:
شل الله لسانك أهذا هجاء أم إطراء؟

أطرق "أبو الأكواد" برأسه وهو يقول:
وهل في الحسناء شيء يعاب، ألست يا مولاي تستخدم نظام الويندوز؟

هنا رد الخليفة ضاحكا:
حسبك.

ثم أمر له بحاسوب Compaq وقرص صلب خارجي مقداره 3 تيرا.

دورة لغة XML وتوابعها (سبعة دروس بجودة عالية)


السلام عليكم ورحمة الله وبركاته، أحبتي في الله نقدم لكم اليوم دورة جديدة من الدورات التي تقدمها أكاديمية المبرمجين العرب حول موضوع: لغة XML وما يترتب عنها من توابع (XSL, DTD, SCHEMAS, XPath, XQuery, ...)  بأسلوب أكاديمي سلس نراعي فيه التدرج وبسط المفاهيم المعقدة بأسلوب مستساغ.
تعرض دورتنا هذه تاريخ لغة XML وأهميتها في عالم البرمجيات والأنظمة وتبادل البيانات بين الأجهزة المختلفة، أيضا نكشف النقاب عن الفرق بين لغة XML وبين لغة HTML وعن أصلهما المشترك لغة SGML ال\ي استمدتا منه البنية الشجرية القائمة على الأوسمة Balises / Tags، أيضا ستاعرف على مكونات ملفات XML بدء من المدخل Prolog / XML Declaration وما يتكون منه من خصائص Version، Encoding، Standalone، مرورا بالمحتوى Content الذي يتكون من الجذر Root و العناصر Elements.
سنتعرف على معالجات XML التي تسمى ب XML Parsers التي تقوم بعرض محتوى ملفات XML بعد تحويلها باستخدام لغة XSL (Extensible Stylesheet Language) وسنتعرف كذلك على ضوابط وقواعد كتابة الأوسمة في XML ومفهوم الخصائص Attributes.
مع متمنياتي لكم بالتوفيق والسداد ودام لكم البشر والفرح.

محتوى دورة لغة XML و توابعها:

1. دورة لغة XML - تاريخ لغة XML وتقنيات تبادل البيانات 
2. دورة لغة XML - دواعي استخدام XML ونماذج حقيقية على ذلك 
3. دورة لغة XML - الفرق بين HTML و XML ومزايا لغة XML والأدوات اللازمة 
4. دورة لغة XML - إنشاء أول ملف XML (المدخل Prolog، الترميز Encoding، المعالجة Parsing) 
5. دورة لغة XML - الجذر والعناصر Root and Elements 
6. دورة لغة XML - قواعد كتابة ملف XML سليم Well-Formed
7. دورة لغة XML - الخصائص Attributes 

حل مشكلة ظهور الحروف العربية على شكل علامات استفهام في SQL Server


السلام عليكم ورحمة الله وبركاته، مشكل الترميز في نظام إدارة قواعد البيانات SQL Server 2008 يتسبب أحيانا في إظهار الكتابات العربية على شكل علامات استفهام لأن الترتيب الافتراضي  Collation لا يدعم ترميز الحروف العربية، وبالتالي وجب تغيير نمط الترتيب واختيار أحد الأنماط الداعمة للغتنا، وهذه صورة للمشكلة:

حل المشكلة

قد تبحث على النت فتجد طرقا كثيرة جدا لكنها ستستنزف وقتك وأحيانا لن تفي بالغرض لأنك قد تواجه مشاكل قاعدة البيانات أحادية ومتعددة الاستخدام  Single_User and Multi-User Modes أو مشاكل أخرى، لذلك ارتأيت أن أختصر عليك الجهد في أسطر ثلاثة إذا قمت بنتفيذها ستنتهي مشكلة الترميز.
قم بإضافة محرر استعلامات جديد:

الآن قم بنسخ الأوامر التالية في محرر الاستعلامات ثم اضغط على زر التنفيذ Execute أو اضغط على الزر F5، مع الأخذ بعين الاعتبار تغيير اسم قاعدة البيانات إلى إسم قاعدة البيانات الخاصة بك:

USE master
ALTER DATABASE YourDatabaseName SET SINGLE_USER;
ALTER DATABASE YourDatabaseName COLLATE Arabic_CI_AS;
ALTER DATABASE YourDatabaseName SET MULTI_USER;


شرح الأوامر

في السطر الأول حددنا قاعدة البيانات الرئيسية master التي استخدمناها من أجل تنفيذ أوامر تغيير الترميز.
في السطر الثاني قمنا بتغيير وضع الاتصال بقاعدة البيانات التي نريد تحويل ترميزها إلى الوضع الأحادي SINGLE_USER، ثم في السطر الثالث قمنا بتغيير ترتيب الترميز إلى اللغة العربية Arabic_CI_AS، وفي السطر الأخير قمنا بإرجاع قاعدة البيانات إلى الوضع المتعدد MULTI_USER.
علما أنه توجد مجموعة من الأنماط الأخرى الداعمة لغة العربية حسب البلدان العربية ويمكنك الاطلاع عليها من خلال عمل Right Click على قاعدة البيانات ثم اختيار Properties، بعد ذلك ادخل على التبويب Options، ستظهر لك قائمة منسدلة إلى جانبها Collation قم بالدخول إليها وستجد مجموعة من الترميزات العربية حسب البلدان العربية وكلها تبدأ بالمقدمة Arabic.


ملاحظة

الطريقة التي رأيناها فعالة جدا إذا قمنا بها قبل إنشاء الجداول، أما إن كانت الجداول منشأة مسبقا فقد لا تتأثر بعملية تغيير ترميز الحروف Collation، لذلك وجب في حالة بقاء الخلل في الجداول الموجودة مسبقا أن تقوم بفتح الجدول في وضع التعديل Design Mode، ثم تحدد الحقل الذي تريد تخزين قيم عربية داخله وتذهب إلى خصائصه وتعدل الخاصية Collation التابعة له وبهذا ينتهي المشكل جذريا (عملية تعديل ترميز الحقل كما يلي):


في حفظ الله ورعايته.


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

توطئة بقلم: خالد السعداني

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

خالد السعداني بتاريخ 28 أبريل 2014

اسم الكتاب: النظرات الدقيقة في مفاهيم البرمجة العميقة (أسس التفكير البرمجي لغة C++ نموذجا)
مؤلف الكتاب: باسل يحيى عبد الله
عدد صفحات الكتاب: 180 صفحة

لغة الكتاب: العربية الفصحى