TechTalk: Removing Separator Characters from a Date Field

General
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Here is a simple technique for removing editing characters from a date field. Use the CHECK op code to find the delimiters, and use the EVAL op code and %SUBST built-in function to take them out.

Figures 7 and 8 contain the prototype and the subprocedure RMVDTSEP (Remove Date Separators) for this technique.

This method can be used with dates in formats MM/DD/YY, YY/MM/DD, CCYY/MM/DD, or MM/DD/CCYY, and it works with any nonblank separator character.

- Shashi K. Narasimhan Cap Gemini

Figure 7: Member RMVDTSEPPR, the prototype for the RMVDTSEP subprocedure

DRMVDTSEP PR 10
DVAR1 10 *===============================================================

* Remove date separators
*===============================================================

* To compile:
*

* CRTRPGMOD MODULE(XXX/RMVDTSEP) SRCFILE(XXX/QRPGLESRC)
*

* CRTSRVPGM SRVPGM(XXX/RMVDTSEP) SRCFILE(XXX/QRPGLESRC) +
* EXPORT(*ALL)

*

*===============================================================

HNOMAIN

Figure 8: The RMVDTSEP subprocedure

/COPY XXX/QRPGLESRC,RMVDTSEPPR
PRMVDTSEP B EXPORT
DPI10
DVAR1 10

DARR S 3 0 DIM(4)
DDGTS C '0123456789 '
DLEN S 2 0

C DGTS CHECK VAR1 ARR
C ' ' CHECKR VAR1 LEN
C
C IF ARR(2) *ZERO
C RETURN %SUBST(VAR1:1:ARR(1)-1)
C + %SUBST(VAR1:ARR(1)+1:ARR(2)-(ARR(1)+1))
C + %SUBST(VAR1:ARR(2)+1:LEN-ARR(2))

C ELSE
C RETURN VAR1
C ENDIF

PRMVDTSEP E

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$0.00 Raised:
$