Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8372

Re: Alphanumeric String Calculation

$
0
0

Hi Gaurav,

 

I wrote code based on your scenario to get value for Yarn 'A'. Same way you can get value for 'B' & 'C'.

 

Check below code:

 

DATA: L_STRING TYPE STRING,

       L_VALUE  TYPE F,

       L_RESULT TYPE LBKUM.

 

L_STRING = '{[1A,2B,2C]3,1B,4C}4,[1A,4B]4'.

 

REPLACE ALL OCCURRENCES OF ',' IN L_STRING WITH ' + % '.

REPLACE ALL OCCURRENCES OF '{' IN L_STRING WITH ' ( %'.

REPLACE ALL OCCURRENCES OF '[' IN L_STRING WITH ' ( %'.

REPLACE ALL OCCURRENCES OF '}' IN L_STRING WITH ' ) * % '.

REPLACE ALL OCCURRENCES OF ']' IN L_STRING WITH ' ) * %'.

 

*..Pass '1' for A and for rest characters '0'

REPLACE ALL OCCURRENCES OF 'A' IN L_STRING WITH ' * 1 %'.

REPLACE ALL OCCURRENCES OF 'B' IN L_STRING WITH ' * 0 %'.

REPLACE ALL OCCURRENCES OF 'C' IN L_STRING WITH ' * 0 %'.

 

REPLACE ALL OCCURRENCES OF '%' IN L_STRING WITH SPACE. "space after operators

 

CALL FUNCTION 'EVAL_FORMULA'

   EXPORTING

     FORMULA                 = L_STRING

     PROGRAM                 = SY-REPID

     ROUTINE                 = 'VAR_GET'

   IMPORTING

     VALUE                   = L_VALUE

   EXCEPTIONS

     DIVISION_BY_ZERO        = 1

     EXP_ERROR               = 2

     FORMULA_TABLE_NOT_VALID = 3

     INVALID_EXPRESSION      = 4

     INVALID_VALUE           = 5

     LOG_ERROR               = 6

     PARAMETER_ERROR         = 7

     SQRT_ERROR              = 8

     UNITS_NOT_VALID         = 9

     MISSING_PARAMETER       = 10

     OTHERS                  = 11.

IF SY-SUBRC = 0.

   MOVE L_VALUE TO L_RESULT.

   WRITE:/ L_RESULT.

ENDIF.


Viewing all articles
Browse latest Browse all 8372

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>