SAS: توقيت ملفات / تطبيق ملفات Autoexec إلى مجموعات البيانات للعرض

StackOverflow https://stackoverflow.com/questions/541505

  •  23-08-2019
  •  | 
  •  

سؤال

ها هي الخلفية. أنا آسف لأن الأمر طويل:
أقوم برمجة SAS لمدة 3 مشاريع مختلفة. كل مشروع لديه مجلد المشروع الرئيسي الخاص به. يحتوي كل مجلد مشروع رئيسي على مجلد تنسيقات (يحتوي على كتالوج التنسيق)، ثم العديد من المجلدات الأخرى، كل منها يحتوي على برامج ومجموعات بيانات. أفعل معظم عملي في وضع الدفعات، لذلك عادة ما تكون SAS مفتوحة. في بعض الأحيان، رغم ذلك، أريد فتح مجموعة بيانات في SAS للنظر في شيء خاص. عندما أقوم بذلك، لا تعرف SAS أين تبحث عن كتالوج التنسيق المناسب، لأن كتالوجات التنسيق ليست في نفس المجلد مثل مجموعات البيانات. لذلك أنا تستخدم حاليا ملف autoexec.sas يحدد nofmterr الخيار، بحيث ستفتح مجموعات البيانات الخاصة بي.

أود حقا أن أكون قادرا على فتح مجموعات البيانات الخاصة بي بالتنسيق المناسب. كتبت برنامج AutoExec مختلف يستخدم نافذة حوار تطلب مني أي مشروع أعمل عليه ثم يحدد fmtsearch الخيار وفقا لذلك. يعمل هذا بشكل رائع إذا كنت أريد أولا فتح SAS، ثم افتح مجموعة بيانات. ولكن إذا لم تكن SAS قيد التشغيل بالفعل، وأحاول فتح مجموعة بيانات بالنقر المزدوج فوقها، فإليك ما يحدث: يبدأ تشغيل ملف Autoexec قيد التشغيل، ثم يحاول SAS فتح DataSet قبل الانتهاء من تشغيل ملف Autoexec. لذلك إذا كان لدي nofmterr اضبط، ستفتح DataSet بدون تنسيقات، أو إذا لم يكن لدي nofmterr مجموعة، لن تفتح مجموعة البيانات على الإطلاق.

لذلك هنا سؤالي: هل هناك طريقة للحصول على SAS للانتظار حتى تنتهي ملف AutoExec قيد التشغيل قبل أن يحاول فتح DataSet؟ أو، هل هناك طريقة أخرى حول المشكلة؟ (لا أريد إضافة جميع ملفات التنسيق الثلاثة إلى fmtsearch الخيار، لأن المشاريع المختلفة قد يكون لها تنسيقات مختلفة بنفس الاسم.)

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

المحلول

نظرا لأن DataSet يفتح دون أي رمز يعمل قبل اليد، يصبح هذا هادئا صعبا. هل من الممكن فتح DataSet كمعلمة من التعليمات البرمجية. أتصور شيئا مثل هذا:

commandline:/sas ./opends.sas -sysparm "/this/is/the/dataset/location_and_name"

تشمل الكود الخاص بك "Opends.sas" جميع معلومات التنسيق الرفيعة لمشروعك.

يمكنك حتى كتابة برنامج نصي (BASH أو Batch اعتمادا على نظام التشغيل) الذي يحتوي على كل ما سبق مسبقا مسبقا ويمكنك استدعاء البرنامج النصي مع DataSet كمعلمة.

أعلم أن هذا يبدو مرهقا، لكن هذا هو الحل الأول الذي يمكنني التوصل إليه بناء على وصفك.

- - المعدات 20090218.

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

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