› פורומים › אפיון ופיתוח פריוריטי › לרפד באפסים – מספר הקסידצימלי לascii
- This topic has 10 תגובות, 3 משתתפים, and was last updated לפני 7 שנים, חודש 1 by
PriorityDev.
- Post
-
- יולי 25, 2018 בשעה 12:40 pm
שלום,
אני צריך לעשות פעולה שדומה ל
itoa(n,m)
(פעולה שבה יש לי מספר נניח 12 ואז אני מרפד אותו באפסים כדי להגיע לסכום הספרות הנדרש – נניח 5, במקרה כזה התוצאה: 00012).האם מישהו מכיר דרך לעשות את זה על מספר הקסדצימלי?
אשמח לאיזה פיתרון חביב שלא כולל מלא תנאים צרובים בקוד 🙂
מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
- Replies
-
- יולי 25, 2018 בשעה 1:09 pm
HTOI ואחר כך ITOA ?- יולי 25, 2018 בשעה 1:38 pm
אבל אז אני מקבל את המספר הדצימלי בASCII ולא את המספר שאני רציתי.
המחשה:
המספר ההקסדצימלי הוא c
אני רוצה לקבל:
0000c
ולא:
00012- יולי 25, 2018 בשעה 2:03 pm
אז תכתוב משהו כזה:
/*----------------------------------------*/
:HEXA = 'c';
:ZEROS = '';
:CNT = 8 - STRLEN(:HEXA);
/*---------*/
LABEL 333;
:ZEROS = STRCAT(:ZEROS, '0');
:CNT = :CNT - 1;
LOOP 333 WHERE :CNT > 0;
/*---------*/
:AHEXA = STRCAT(:ZEROS, :HEXA);
/*----------------------------------------*/
אפשר גם לשים את הקוד הנ"ל בטריגר במסך func ולקרוא לו ב-INCLUDE.- יולי 25, 2018 בשעה 5:50 pm
תודה רבה, רעיון נפלא 🙂
(קיוויתי שיש איזו פקודה שנעלמה מהSDK ).- יולי 25, 2018 בשעה 6:43 pm
כנראה שפקודה מובנית אין. אבל אם פעם אחת שמים את זה בטריגר, אז אין הרבה הבדל.- יולי 26, 2018 בשעה 12:00 pm
אפשר אפילו לקצר:
:HEXA = 'c';
:ZEROS = '';
/*---------*/
LABEL 333;
:ZEROS = STRCAT(:ZEROS, '0');
LOOP 333 WHERE STRLEN(:ZEROS) < (8 - STRLEN(:HEXA));
/*---------*/
:AHEXA = STRCAT(:ZEROS, :HEXA);- יולי 26, 2018 בשעה 8:08 pm
נו נו, רוצים לרפד לרוחב 8?בשורה אחת:
RSTRIND(STRCAT('00000000',:HEXA),1,8)
אפשר גם RSUBSTR אם רוצים להיות מאוד מודרניים
וכל הפתרונות בעצם רק מרפדים, סומכים על הקלט שהוא הקסדצימל תקין ולא סתם טקסט…
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 26, 2018 בשעה 8:19 pm
יצחק,
1. הקוד שכתבתה טוב למספר בעל אורך 1 (במציאות האורך משתנה ולכן מוסיפים אפסים לפי הצורך).
2. הכוונה היא גם שבמקום 8 (סה"כ אורך) אפשר למסור משתנה.- יולי 26, 2018 בשעה 10:01 pm
1. חושב שאתה טועה. תעשה dump לדו"ח כלשהוא.2. מסכים באופן כללי אבל זה חוסך באפר/טריגר ומתאים לשימוש ב-select. במצב כזה יתכן שבכל שימוש עורך הפלט הנדרש הוא ידוע מראש.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 27, 2018 בשעה 2:42 am
1. צודק.
מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
- יש להתחבר למערכת על מנת להגיב.