ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/fndstrpdm.htm

568 lines
20 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Find String Using PDM (FNDSTRPDM)</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body bgcolor="white">
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<a name="FNDSTRPDM.Top_Of_Page"></a>
<h2>Find String Using PDM (FNDSTRPDM)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>All environments (*ALL)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#FNDSTRPDM.PARAMETERS.TABLE">Parameters</a><br>
<a href="#FNDSTRPDM.COMMAND.EXAMPLES">Examples</a><br>
<a href="#FNDSTRPDM.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="FNDSTRPDM"></a>
<p>The Find String Using PDM (FNDSTRPDM) command allows you to search for character or hexadecimal strings in source physical file members or data physical file members. You can use any Programming Development Manager (PDM) option or one of your own user-defined options on each member that contains a match for the string.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="FNDSTRPDM.PARAMETERS.TABLE">Parameters</a></h3>
<table border="1" cellpadding="4" cellspacing="0">
<!-- col1="10" col2="15" col3="30" col4="10" -->
<tr>
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
</tr>
<tr>
<td valign="top"><a href="#FNDSTRPDM.STRING"><b>STRING</b></a></td>
<td valign="top">Find 'string'</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Required, Positional 1</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#FNDSTRPDM.FILE"><b>FILE</b></a></td>
<td valign="top">File</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Required, Positional 2</td>
</tr>
<tr>
<td valign="top">Qualifier 1: File</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top"><a href="#FNDSTRPDM.MBR"><b>MBR</b></a></td>
<td valign="top">Member</td>
<td valign="top">Values (up to 300 repetitions): <i>Character value</i>, *ALL</td>
<td valign="top">Required, Positional 3</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#FNDSTRPDM.OPTION"><b>OPTION</b></a></td>
<td valign="top">Operation to perform</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="3">Required, Positional 4</td>
</tr>
<tr>
<td valign="top">Element 1: Option</td>
<td valign="top">
<i>Character value</i>, *EDIT, *COPY, *DLT, *DSP, *PRT, *RNM, *DSPD, *SAVE, *CHGT, *CMPR, *CMPL, *MOD, *MRG, *RUNP, *SDA, *DFU, *RLU, *NONE</td>
</tr>
<tr>
<td valign="top">Element 2: Prompt</td>
<td valign="top">
<b><u>*NOPROMPT</u></b>, *PROMPT</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#FNDSTRPDM.COL"><b>COL</b></a></td>
<td valign="top">Columns to search</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: From column</td>
<td valign="top">
<i>Character value</i>, <b><u>1</u></b>, *RCDLEN</td>
</tr>
<tr>
<td valign="top">Element 2: To column</td>
<td valign="top">
<i>Character value</i>, <b><u>*RCDLEN</u></b></td>
</tr>
<tr>
<td valign="top"><a href="#FNDSTRPDM.CASE"><b>CASE</b></a></td>
<td valign="top">Kind of match</td>
<td valign="top"><b><u>*IGNORE</u></b>, *MATCH</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#FNDSTRPDM.PRTMBRLIST"><b>PRTMBRLIST</b></a></td>
<td valign="top">Print list</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="5"><a href="#FNDSTRPDM.PRTRCDS"><b>PRTRCDS</b></a></td>
<td valign="top">Print records</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values: <i>Element list</i></td>
<td valign="top" rowspan="5">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Number to find</td>
<td valign="top">
<i>Character value</i>, <b><u>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'</u></b>, *ALL</td>
</tr>
<tr>
<td valign="top">Element 2: Print format</td>
<td valign="top">
<b><u>*CHAR</u></b>, *HEX, *ALTHEX</td>
</tr>
<tr>
<td valign="top">Element 3: Mark record</td>
<td valign="top">
<b><u>*MARK</u></b>, *NOMARK</td>
</tr>
<tr>
<td valign="top">Element 4: Record overflow</td>
<td valign="top">
<b><u>*FOLD</u></b>, *TRUNCATE</td>
</tr>
<tr>
<td valign="top"><a href="#FNDSTRPDM.PARM"><b>PARM</b></a></td>
<td valign="top">Parameters</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="FNDSTRPDM.STRING"></a>
<h3>Find 'string' (STRING)</h3>
<p>Specifies the string you want to search for
</p>
<p>This is a required parameter.
</p>
<dl>
<dt><b><i>character-value</i></b></dt>
<dd>Specify the string to search for, enclosed in single quotation marks. The string can be character or hexadecimal.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.FILE"></a>
<h3>File (FILE)</h3>
<p>Specifies the file that contains the members you want to search. The file to be searched can be a source physical file or a data physical file.
</p>
<p>This is a required parameter.
</p>
<p><b>Qualifier 1: File</b>
</p>
<dl>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the physical file that contains the members you want to search.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the job library list will be searched for the specified file.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job will be searched for the specified file. If no current library is defined, QGPL is used as the current library.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be searched for the specified file.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.MBR"></a>
<h3>Member (MBR)</h3>
<p>Specifies the member or members to be searched. You can use this parameter to search all the members or a subset of members in the specified file.
</p>
<p>This is a required parameter.
</p>
<p>You can specify 300 values for this parameter.
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>Search all the file members for the specified string.
</dd>
<dt><b><i>generic-name</i></b></dt>
<dd>Specify the generic name of the file members to be searched.
<p>The generic name can be in one of the following formats:
</p>
<dl>
<dt><b>ABC*</b></dt>
<dd>Searches all members with names that begin with the characters ABC. For example, ABC, ABCD, or ABCTEST.
</dd>
<dt><b>*ABC</b></dt>
<dd>Searches all members with names that end with the characters ABC. For example, ABC, DABC, or TESTABC.
</dd>
<dt><b>*B*</b></dt>
<dd>Searches all members that have the character B anywhere in the member name. For example, B, BALL, ABCD.
</dd>
<dt><b>A*C</b></dt>
<dd>Searches all members that begin with the character A and end with the character C. For example, AC, ABC, or AZZZC.
</dd>
<dt><b>"a*"</b></dt>
<dd>Searches all members with quoted names that start with the letter <b>a</b>. For example, "a", "aB", "aD".
</dd>
<dt><b>**ALL</b></dt>
<dd>Searches all members with names ending with ALL. For example, ALL, BALL, or TESTALL. The double asterisk is needed in this case, since *ALL is defined as the special value to search all members of the file.
</dd>
</dl>
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the member to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.OPTION"></a>
<h3>Operation to perform (OPTION)</h3>
<p>Specifies the Programming Development Manager (PDM) option that you want performed on each member for which a match for the string is found. The parameter is comprised of two elements, one for choosing an option and one for prompting. The option can be any PDM option that is valid for this type of file, or any user-defined option in your active option file. The valid options differ for source physical files and data physical files.
</p>
<p>This is a required parameter.
</p>
<p><b>Element 1: Option</b>
</p>
<dl>
<dt><b>*NONE</b></dt>
<dd>No action is performed on the member that contains the string. Use this value when printing the list of members or records that contain the string.
</dd>
</dl>
<p><b>Source physical file member list options</b>
</p>
<dl>
<dl>
<dt><b>*EDIT</b></dt>
<dd>Edit one or more members using the SEU (source entry utility) editor.
</dd>
<dt><b>*CHGT</b></dt>
<dd>Change some of the attributes of one or more members.
</dd>
<dt><b>*CMPL</b></dt>
<dd>Compile one or more members. The system creates an object based on the member being compiled. The member is compiled interactively or in batch mode, depending on what you have specified on the Change Defaults display or the Change PDM Defaults (CHGPDMDFT) command.
<p>The following member types can be compiled: BAS, BAS36, BAS38, C, CBL, CBLLE, CBL36, CBL38, CICSC, CICSCBL, CICSSQLCBL,CLD, CLLE, CLP, CLP38, CMD, CMD38, CPP, DSPF, DSPF36, DSPF38, FTN, ICFF, LF, LF38, MENU, PAS, PF, PF38, PLI, PLI38, PNLGRP, PRTF, PRINT38, QRY38, RMC, RPG, RPGLE, RPG36, RPG38, RPT, RPT36, RPT38, SPADCT, SQLC, SQLCPP, SQLCBL, SQLCBLLE, SQLFTN, SQLPLI, SQLRPG, SQLRPGLE, and TBL.
</p>
<p>When the programming development manager compiles a program using the necessary create commands, the object name to create is always specified as the source member name. You may change the object name parameter to another object name by prompting the option or typing the correct parameter on the command line. The programming development manager will check if the object name already exists, and if it does, the Confirm Compile of Member display appears. This display gives you the option of deleting the existing object.
</p>
<p>
<b>Note: </b>This screen will not appear if the <b>Replace object</b> prompt on the Change Defaults display (or CHGPDMDFT command) is set to Y (or *YES).
</p>
<p>If you have changed the object name parameter to a special value, PDM will <b>not</b> check to see if the object exists. For example, if you compile an RPG program and change the <b>Program</b> prompt to *CTLSPEC, the programming development manager will not check if the object exists.
</p>
</dd>
<dt><b>*CMPR</b></dt>
<dd>Compare one or more members.
</dd>
<dt><b>*COPY</b></dt>
<dd>Copy one or more members to one or more new members. You can also copy members to another file, another library, or both.
</dd>
<dt><b>*DLT</b></dt>
<dd>Delete one or more members from the file.
</dd>
<dt><b>*DSP</b></dt>
<dd>Display one or more members using SEU (source entry utility).
</dd>
<dt><b>*DSPD</b></dt>
<dd>Display information about one or more members.
</dd>
<dt><b>*MOD</b></dt>
<dd>Create a module object for an ILE source type.
</dd>
<dt><b>*MRG</b></dt>
<dd>Merge the target member with another member.
</dd>
<dt><b>*PRT</b></dt>
<dd>Print one or more members using SEU (source entry utility).
</dd>
<dt><b>*RNM</b></dt>
<dd>Rename one or more members.
</dd>
<dt><b>*RUNP</b></dt>
<dd>Run a source member with a member type of REXX, OCL36, BASP, or BASP38. If you try to run a member with a type that cannot be run, you receive an error message. To run an OCL36 procedure, the file name must be QS36PRC. You can have the member run in batch mode or interactively depending on what you specified in the <b>Run in batch</b> prompt on the Change Defaults display or CHGPDMDFT command.
</dd>
<dt><b>*SAVE</b></dt>
<dd>Save a member on diskette or tape.
</dd>
<dt><b>*SDA</b></dt>
<dd>Use SDA (screen design aid) to work with the chosen members.
<ul>
<li>If the member type is DSPF or DSPF38, SDA is called to work with a display.
</li>
<li>If the member type is MNU, MNUDDS or MNUCMD, SDA is called to work with a menu.
</li>
<li>If the member type is DSPF36 or MNU36, then the System 36 SDA main menu is displayed.
</li>
<li>If the former type of member MNU is entered, SDA converts this to MNUDDS.
</li>
<li>Note that menu members for PDM have type MNUDDS for the image member and type MNUCMD for the command source member. The two are linked together to constitute a group, so that specifying one of the types means that you also operate on the linked member at the same time.
</li>
</ul>
</dd>
<dt><b>*RLU</b></dt>
<dd>Use RLU (report layout utility) to work with the chosen members.
</dd>
</dl>
</dl>
<p><b>Data physical file member list options</b>
</p>
<dl>
<dl>
<dt><b>*CHGT</b></dt>
<dd>Change some of the attributes of one or more members in a physical file.
</dd>
<dt><b>*CMPR</b></dt>
<dd>Compare one or more members.
</dd>
<dt><b>*COPY</b></dt>
<dd>Copy one or more members to one or more new members. You can also copy members to another file, another library, or both.
</dd>
<dt><b>*DFU</b></dt>
<dd>Call DFU (data file utility) to change the chosen members.
</dd>
<dt><b>*DLT</b></dt>
<dd>Delete one or more members from the file.
</dd>
<dt><b>*DSP</b></dt>
<dd>Display one or more members.
</dd>
<dt><b>*DSPD</b></dt>
<dd>Display information about one or more members.
</dd>
<dt><b>*RNM</b></dt>
<dd>Rename one or more members.
</dd>
<dt><b>*SAVE</b></dt>
<dd>Save a member on diskette or tape.
</dd>
</dl>
</dl>
<p><b>User-defined member list option</b>
</p>
<dl>
<dl>
<dt><b><i>character-value</i></b></dt>
<dd>Specify the name of an option you have defined in your active option file.
</dd>
</dl>
</dl>
<p><b>Element 2: Prompt</b>
</p>
<p>The prompt portion of this parameter specifies whether or not you want to be prompted each time the command for the option is carried out.
</p>
<dl>
<dt><b><u>*NOPROMPT</u></b></dt>
<dd>Do not prompt for the command to be carried out for each member that matches the string.
</dd>
<dt><b>*PROMPT</b></dt>
<dd>Prompt for the command to be carried out for each member that matches the string.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.COL"></a>
<h3>Columns to search (COL)</h3>
<p>Specify the starting and ending column numbers of the part of each file record to be searched. This allows you to search the beginning, ending, or middle of each record.
</p>
<p>The starting column number cannot exceed the record length.
</p>
<p><b>Element 1: From column</b>
</p>
<dl>
<dt><b><u>1</u></b></dt>
<dd>Searching will start in column 1 of each record.
</dd>
<dt><b>*RCDLEN</b></dt>
<dd>Only the last column of each record will be searched.
</dd>
<dt><b><i>number</i></b></dt>
<dd>Specify the first column of the part of each record to be searched.
</dd>
</dl>
<p><b>Element 2: To column</b>
</p>
<dl>
<dt><b><u>*RCDLEN</u></b></dt>
<dd>The part of each record to be searched extends from the specified starting column to the last column of the record.
</dd>
<dt><b><i>number</i></b></dt>
<dd>Specify the last column of the part of each record to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.CASE"></a>
<h3>Kind of match (CASE)</h3>
<p>Specifies whether the search is case sensitive.
</p>
<dl>
<dt><b><u>*IGNORE</u></b></dt>
<dd>Search the member for the specified string without case sensitivity.
</dd>
<dt><b>*MATCH</b></dt>
<dd>Search for an exact match to the specified string.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.PRTMBRLIST"></a>
<h3>Print list (PRTMBRLIST)</h3>
<p>Specified whether the list of those members for which a match is found is to be printed.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>Do not print the list of members that contain a match to the string.
</dd>
<dt><b>*YES</b></dt>
<dd>Print the list of members that contain a match to the specified string.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.PRTRCDS"></a>
<h3>Print records (PRTRCDS)</h3>
<p>Specifies which records that contains the string are to be printed.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Do not print any of the records that contain the specified string.
</dd>
</dl>
<p><b>Element 1: Number to find</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>Print all the records that contain the specified string.
</dd>
<dt><b><i>1-99999</i></b></dt>
<dd>Specify the number of records to be printed that contain the specified string.
</dd>
</dl>
<p><b>Element 2: Print format</b>
</p>
<dl>
<dt><b><u>*CHAR</u></b></dt>
<dd>Print the records in character format.
</dd>
<dt><b>*HEX</b></dt>
<dd>Print the records in hexadecimal, over/under style format. This means that the character value is printed with the hexadecimal below it.
</dd>
<dt><b>*ALTHEX</b></dt>
<dd>Print the records in hexadecimal side-by-side style format.
</dd>
</dl>
<p><b>Element 3: Mark record</b>
</p>
<p>You can mark the string on the printed record. The string itself is used as a marker for character searches for quick recognition. For hexadecimal searches, the string is marked with asterisks (*).
</p>
<dl>
<dt><b><u>*MARK</u></b></dt>
<dd>Mark the occurrence of the string in the record.
</dd>
<dt><b>*NOMARK</b></dt>
<dd>Do not mark the occurence of the string in the record.
</dd>
</dl>
<p><b>Element 4: Record overflow</b>
</p>
<p>You can specify whether the record will be folded or truncated if it is greater than the length of the print line.
</p>
<dl>
<dt><b><u>*FOLD</u></b></dt>
<dd>Print the entire record over multiple print lines.
</dd>
<dt><b>*TRUNCATE</b></dt>
<dd>Print only the part of the record that fits on a single print line. When *ALTHEX is used, only columns 1 - 32 are printed, and when *CHAR or *HEX are used, columns 1 - 100 are printed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="FNDSTRPDM.PARM"></a>
<h3>Parameters (PARM)</h3>
<p>Specifies the parameters that you want to be added to the command carried out as a result of the value specified for element 1 of the <b>Operation to perform (OPTION)</b> parameter.
</p>
<dl>
<dt><b><i>character-value</i></b></dt>
<dd>Specify the parameters to be passed to the command associated with the value specified for the OPTION parameter. The default for this parameter is blank which will pass no parameters.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="FNDSTRPDM.COMMAND.EXAMPLES">Examples</a> </h3>
<p><b>Example 1: Find String Occurrences in One Member</b>
</p>
<p>
<pre>
FNDSTRPDM STRING('Ms') FILE(*LIBL/CUST)
MBR('NEW') CASE(*MATCH)
OPTION(*NONE) PRTRCDS(*ALL *CHAR)
</pre>
</p>
<p>This command finds all records of member NEW in file CUST that contain the string <b>Ms</b>. The file will be located using the job list list. The search will be case sensitive. A spooled file is generated that lists each record that contains the search string.
</p>
<p><b>Example 2: Find String in a Set of Members</b>
</p>
<p>
<pre>
FNDSTRPDM STRING('*TEST*') FILE(MYLIB/MYFILE)
MBR('*APP') CASE(*IGNORE)
OPTION(FIX)
</pre>
</p>
<p>This command finds occurrences of the string <b>*TEST*</b> in members of file MYFILE in library MYLIB with member names that end with the letters <b>APP</b>. The search is not case sensitive so records with <b>*test*</b> or <b>*Test*</b> will be considered as matching the search string. For each member that contains the search string, user-defined option FIX will be run from the active option file.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="FNDSTRPDM.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>PDM0055</b></dt>
<dd>Error while processing the &amp;1 command.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#FNDSTRPDM.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>