June 12, 2008, 11:19 AM
Tomsweb[SOLVED] help with substr (amper variables)
Can anyone help me get the &XP2 line to work?
-*************************************
-* CONVERT STRING WITH ODD CHARACTERS
-*************************************
-SET &ECHO=ALL;
-*
-TYPE .
-SET &CATEGORY = 'TRAIN/EX';
-TYPE CATEGORY = &CATEGORY
-*
-SET &NL = ARGLEN(&CATEGORY.LENGTH,&CATEGORY,'I2');
-TYPE LENGTH = &NL
-*
-SET &XP = POSIT(&CATEGORY, 6, '/', 1, 'I1');
-TYPE '/' IS FOUND IN POSITION: &XP
-*
-SET &XP1 = SUBSTR(6,&CATEGORY, 1, &XP,&XP-1,'A5');
-TYPE &XP1
-*
-SET &XP2 = SUBSTR(6,&CATEGORY,(&XP+1),(&XP+2), 2,'A2');
-TYPE &XP2
-GOTO OUTT
-SET &XCATEGORY = &XP1 | &XP2;
-*
-TYPE CATEGORY = &XCATEGORY
-*
-*
-OUTT
-EXIT
Thanks
This message has been edited. Last edited by: Tomsweb, June 12, 2008, 11:50 AM
KameshAre you getting any error?
June 12, 2008, 11:55 AM
KameshIsn't the length of Category is 8?
Try this,
-SET &ECHO='ALL';
-*************************************
-* CONVERT STRING WITH ODD CHARACTERS
-*************************************
-*
-TYPE .
-SET &CATEGORY = 'TRAIN/EX';
-TYPE CATEGORY = &CATEGORY
-*
-SET &NL = ARGLEN(&CATEGORY.LENGTH,&CATEGORY,'I2');
-TYPE LENGTH = &NL
-*
-SET &XP = POSIT(&CATEGORY, &NL, '/', 1, 'I1');
-TYPE '/' IS FOUND IN POSITION: &XP
-*
-SET &XP1 = SUBSTR(&NL,&CATEGORY, 1, &XP,&XP-1,'A5');
-TYPE &XP1
-*
-SET &XP2 = SUBSTR(&NL,&CATEGORY,(&XP+1),(&XP+2), 2,'A2');
-TYPE &XP2
-GOTO OUTT
-SET &XCATEGORY = &XP1 | &XP2;
-*
-TYPE CATEGORY = &XCATEGORY
-*
-*
-OUTT
-EXIT
June 12, 2008, 12:14 PM
Danny-SRLTom,
Do you just want to get rid of the '/'?
If so, use STRIP
-SET &CATEGORY = 'TRAIN/EX';
-SET &CATLEN=&CATEGORY.LENGTH;
-SET &XCATEGORY=STRIP(&CATLEN, &CATEGORY, '/', 'A&CATLEN.EVAL');
June 12, 2008, 01:01 PM
Tomswebquote:
-SET &CATEGORY = 'TRAIN/EX';
-SET &CATLEN=&CATEGORY.LENGTH;
-SET &XCATEGORY=STRIP(&CATLEN, &CATEGORY, '/', 'A&CATLEN.EVAL');
Thanks...I did not think of strip...like it more as it is less coding.