كيف تكتب سلسلة سداسية في ملف مثل السداس باستخدام rexx

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

  •  21-09-2019
  •  | 
  •  

سؤال

لديّ سلسلة "Raja" التي يجب كتابتها في ملف كبيانات سداسية عشرية. فيما يلي عينة رموز تساعدني على وصف المشكلة. الحالة (أ)

name = 'RAJA'   
name = C2X(name) /* Hex value = '52414A41' */
QUEUE name.

الإخراج إلى الملف: 52414A41

ولكن إذا استخدمنا بيانات HEX مباشرة للكتابة في ملف ، فإنه يعمل بشكل جيد (ب)

name = '52414A41'X
QUEUE name.

الإخراج إلى الملف: RAJA

مشكلة: في الحالة (أ) عندما تم تحويل السلسلة إلى HEX باستخدام C2X ، فإنها تُرجع سلسلة بيانات HEX وليس بيانات HEX. ولكن في الحالة (ب) حيث تمت كتابة بيانات HEX إلى ملف. سؤالي هو كيفية السماح لـ Rexx على معرفة أن "الاسم" المتغير في الحالة (أ) لديه بيانات سداسية عشرية ويتم كتابتها كـ hex. آمل أن أكون قد أوضحت القضية. Lemme فقي نحو حل.

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

المحلول 2

أخيرًا ، يمكنني حل القضية الموصوفة في Top. هناك وظيفة مدمجة في Rexx تسمى "تفسير" ، والتي تساعدنا في بناء أوامر REXX الديناميكية. إليكم البيان الوحيد ، جعلني أدير الوحدة الناجحة:

INTERPRET name_hex "= '" || name || "'X"

ينشئ ديناميكيًا بيان Rexx:

name_hex = 'name'X

الذي سيخبر مترجم Rexx بالسلسلة في "الاسم" كبيانات سداسية عشرية.

حق رائع! آمل أن أكون قد أوضحتك .. تعود إلي مع أسئلتك ..

نصائح أخرى

يمكنك أيضًا استخدام وظيفة X2C

قل x2C (52414A41)

يعرض رجا

بالنسبة لمعظم الوظائف مثل C2X ، يقوم العكس بالعكس

بمعنى آخر

قل D2C (C2D (10))

قل C2D (D2C (10))

قل x2D (D2X (10))

كل عرض 10

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


name = 'RAJA'
say name            /* RAJA */
name = C2X(name)
say name            /* 52414A41 */
name = X2C(name)
say name            /* RAJA */
name = '52414A41'x
say name            /* RAJA */
name = X2C('52414A41')
say name            /* RAJA */
name = '52414A41'
INTERPRET "name = '" || name || "'X"
say name            /* RAJA */
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top