استخدام السلاسل كمتغيرات تمييزية في بيان حالة دلفي Chen Jiaxin╱[email protected]● عند ذكر عبارات الحالة في المقدمة، فإن أول حالة تطبيق تتبادر إلى الذهن هي من خلال تحديد المتغيرات للسماح لتدفق البرنامج بالاختيار المسار المناسب لمواصلة التنفيذ وفق الظروف المختلفة. أو، عندما تكون هناك سلسلة من مجموعات عبارات if و else if في برنامجنا، فغالبًا ما نفكر في استخدام عبارات الحالة لتبسيط كود البرنامج وتحسين إمكانية قراءته وكفاءة التنفيذ. ومع ذلك، في بعض الحالات، لا يمكن تطبيق عبارات الحالة على برامجنا لأن المتغيرات التمييزية التي تسمح بها تقتصر على أي شكل من أشكال 咚闶剑╡xPRession) والنوع الترتيبي. وهذا ما يسمى "الأنواع الترتيبية" تشير إلى "مرتبة". "أخرى مثل الأعداد الصحيحة والأحرف والتعدادات والمنطقية والمجموعات، ويمكن تطبيقها على أشياء مثل Ord() وPred() وSucc() وLow() وHigh() نوع التعبير (انظر [1]) . لسوء الحظ، من الواضح أن السلسلة (السلسلة) ليست نوعًا ترتيبيًا، وفي مرحلة ما (سيتم تقديم مثال أدناه)، عندما يكون نوع متغير الحالة عبارة عن سلسلة وهناك عدد لا بأس به من الفروع الشرطية، على الرغم من أنها عاجزة، ومع ذلك، يبدو أنه لا توجد طريقة أخرى إلى جانب استخدام الكثير من عبارات if و else if، للأسف. على سبيل المثال، التعليمة البرمجية التالية غير مسموح بها في دلفي: #001 var #002 Str: String; // قم بتعريف متغير مميز من نوع السلسلة #003 begin #004 case Str of // رسالة الخطأ: النوع الترتيبي مطلوب #005 // ... #006 end; #007 end;هذا ببساطة لا يمكن تجميعه، لذا فإن الحل التقليدي عادةً هو تحويله إلى مجموعة كبيرة من عبارات if و else if. في هذه المرحلة، أتمنى حقًا أننا نستخدم Visual Basic، لأن الكود التالي مسموح به من قبل مترجمه (انظر [5]): #001 Dim Str As String 'يعلن عن متغير مميز من النوع String #002 Select Case Str' مكافئ إلى بيان حالة دلفي رقم 003 '... #004 النهاية حدد' حسنًا، من خلال التجميع، لذا في هذه المقالة، يحاول المؤلف استخدام هذه المشكلة كنقطة بداية بالإضافة إلى التحويل إلى مجموعة من عبارات if و else if "أبحث عن حلول أخرى مجدية إلى جانب الحلول التقليدية"، ونأمل مخلصين أن تكون هذه المقالة مفيدة للأشخاص الذين يواجهون هذه المشكلة ويتوقون إلى إيجاد حل (بعد القراءة [12] - [14]، وجد المؤلف أيضًا أن هذا هو الحال بالفعل) يساعد. اسمحوا لي أن أقدم لكم معاينة أولاً. أخطط لتقديم 7 حلول. أول 5 طرق هي مقتطفات أو امتدادات من [9]-[13]، في حين أن الطريقة السادسة عبارة عن أداة تحميل متعددة شاملة ينفذها المؤلف. إصدار. هذه الخيارات هي: v الخيار 1: مصفوفة سلسلة البحث v الخيار 2: استخدام الفهرس الحقيقي v الخيار 3: استخدام وظيفة التجزئة v الخيار 4: بيان الحالة المتداخلة v الخيار 5: استخدام TStringListv الخيار 6: تنفيذ وظيفة التحميل المتعدد الحل 7: تطبيق ستبدأ هذه المقالة بمراجعة موضوعات مثل العبارات الشرطية (يشير المحتوى الرئيسي إلى [1] و[4]) وسلاسل التعرف (يشير المحتوى الرئيسي إلى [2]). في هذا القسم، اقرأ قسم "مشكلات الفعالية" مباشرةً في نهاية المقالة.