سؤال

أنا أعمل حاليا مع رمز "موروث" الذي يحتوي على (مبعثر عشوائيا طوال الوقت) مجموعة كاملة من توجيهات الترجمة الشرطية القائمة على إصدار دلفي، والعودة إلى دلفي 2. من الآن فصاعدا، ستكون جميع التطوير مع دلفي 2009 أو المستقبل. هل هناك أداة في Delphi 2009، أو البرنامج المساعد، سيقوم تلقائيا بإزالة قطاعات التعليمات البرمجية الشرطية المترجم بناء على إصدار "الحد الأدنى" المحدد؟

هل كانت مفيدة؟

المحلول

أنا أوصي بشدة إلهام ديلفي Pascal Preprocessor (DIPP)

يمكن أن يؤدي ذلك إلى القيام بعدد من الأشياء ذات الملف المصدر بالإضافة إلى إزالة المواصفة الشرطية، بما في ذلك "التباين" من تضمين الملفات وإزالة التعليقات (كل القطبية قابلة للتكوين للغاية والتحقيق عن طريق الخيارات المرفقة بالمعالج).

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

لذلك في حالتك، ستحدد ببساطة الرموز المناسبة إلى إصدار Delphi "الأساسي" الخاص بك.

نصائح أخرى

يجب أن تعطي Jedi Preprocessor (Pascal Preprocessor) في jcl. محاولة.

في الجذع في SVN لدينا، يمكن العثور على المصدر في DIR JCL / devyools / JPP وفي أحدث إصدار (2.1) ملف zip-file يمكن العثور على jpp.exe في dir devyools.

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

  1. حلقة من خلال جميع الملفات في الدليل باستخدام FindFirst و FindNext
  2. يستخدم TStringList.LoadFromFile لقراءة جميع ملفات PAS.
  3. حلقة من خلال السلاسل والبحث عن {$IfDef} التوجيهات. إذا كان الإصدار المحدد في القسم الشرطي أكبر من D2009 إزالة كل النص حتى {$EndIf}.
  4. يستخدم TStringList.SaveToFile لكتابة الملف المعدل إلى القرص.

سيكون نصيحتي لتغيير التعليمات البرمجية التي تديرها بالكامل بالكامل. إذا كنت ستقوم أيضا بتعديل رمز الطرف الثالث الحالي، فأنا أقترح عليك أن تذهب من خلال كل IFDEF محددة للتحقق من الصحة. لا يستخدم بعض البائعين مكالمات IFDEF Verxxx القياسية، ولكن إنشاء صورهم التي قد تسمى شيئا مثل Ver70up أو من هذا القبيل. المكان الأكثر شيوعا لهذا سيكون في تضمين الملفات، لذا ابحث عن ملف {$ i؟ unc} ملف} بالقرب من بداية كل ملم

السبب الآخر لتحليل كل دولار تحدد / $ undef هو حقيقة أن إصدار خاص يمكن للمرء أن يحدد جديد يحدد أن التحقق سابقا لا يتحقق في السابق ... الذي يؤدي في النهاية إلى رمز ميت.

يستخدم gexperts., ، يمكنك استخدام كل من GrepSearch أو Grepregultresspressionions للبحث في التعليمات البرمجية الخاصة بك ثم استخدم أداة استبدال في Grepresults لإزالة كل ما تحتاجه.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top