Difference between revisions of "Strip Formatting"

From MidrangeWiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
== Summary ==
 
== Summary ==
 
The following are the RPG/LE fully free-form definitions and instructions needed for using the {{AN}} service procedure.  This service procedure simply allows the caller to strip all specified formatting delimiters out of a character string.  If the delimiters are omitted then, by default, only blanks are stripped—including embedded blanks.
 
The following are the RPG/LE fully free-form definitions and instructions needed for using the {{AN}} service procedure.  This service procedure simply allows the caller to strip all specified formatting delimiters out of a character string.  If the delimiters are omitted then, by default, only blanks are stripped—including embedded blanks.
 +
 +
By [[User:DaveLClarkI|Dave Clark]]
  
 
== Service Prototype ==
 
== Service Prototype ==
Line 25: Line 27:
 
<pre>
 
<pre>
 
**free
 
**free
 +
ctl-opt NoMain AlwNull(*UsrCtl) Debug Option(*SrcStmt:*NoDebugIo)
 +
        DatFmt(*ISO) TimFmt(*ISO);
  
 
//==============================================================================
 
//==============================================================================
Line 53: Line 57:
 
end-proc;
 
end-proc;
 
</pre>
 
</pre>
 +
 +
== Examples ==
 +
See the [[Format Phone Number]] service procedure.
 +
 +
See the [[Format Zip Code]] service procedure.
  
 
== References ==
 
== References ==
 
* [[Scan and Replace|GenUtl_ScanAndReplace]] service procedure
 
* [[Scan and Replace|GenUtl_ScanAndReplace]] service procedure

Latest revision as of 17:39, 17 December 2018


Summary

The following are the RPG/LE fully free-form definitions and instructions needed for using the Strip Formatting service procedure. This service procedure simply allows the caller to strip all specified formatting delimiters out of a character string. If the delimiters are omitted then, by default, only blanks are stripped—including embedded blanks.

By Dave Clark

Service Prototype

Place the following in a separate copybook for inclusion in both the caller and the service program source members.

**free

//==============================================================================
// Strip all occurrences of the specified delimiter(s) from a string --
//       including embedded occurrences of those delimiters.  If delimiters
//       are omitted, then all blanks are stripped by default.
//==============================================================================
dcl-pr GenUtl_StripFormatting     varchar(512) rtnparm;
  StringValue           varchar(512)   const;
  DelimsValue           varchar(64)    const     options(*omit);
end-pr;

Service Procedure

Place the following in a service program source member.

**free
ctl-opt NoMain AlwNull(*UsrCtl) Debug Option(*SrcStmt:*NoDebugIo)
        DatFmt(*ISO) TimFmt(*ISO);

//==============================================================================
// Strip all occurrences of the specified delimiter(s) from a string --
//       including embedded occurrences of those delimiters.  If delimiters
//       are omitted, then all blanks are stripped by default.
//==============================================================================
dcl-proc GenUtl_StripFormatting   export;
  dcl-pi *n             varchar(512)   rtnparm;
    StringValue         varchar(512)   const;
    DelimsValue         varchar(64)    const     options(*omit);
  end-pi;

  dcl-s x               packed(3:0);
  dcl-s OutputString    like(StringValue);

  if %parms() < %parmnum(DelimsValue); // if omitted strip all blanks by default
    OutputString = GenUtl_ScanAndReplace(' ': %trim(StringValue): '');
  else;
    OutputString = %trimr(StringValue); // else, strip only trailing blanks
    for x = 1 to %len(DelimsValue);    // loop on formatting characters
      OutputString = GenUtl_ScanAndReplace( %subst(DelimsValue: x: 1)
                                          : OutputString: '' );
    endfor;
  endif;

  return OutputString;                 // return result string to caller
end-proc;

Examples

See the Format Phone Number service procedure.

See the Format Zip Code service procedure.

References