Hi Ed,I am pretty sure that PQN procs are supported in Unidata, I have never used them or seen a manual for them. Like you I have not found anything in the udtdocs that addresses Proc either....Kebbon
> From: u...@edclark.net > Date: Mon, 7 May 2012 22:58:31 -0400 > To: u2-users@listserver.u2ug.org > Subject: Re: [U2] Proc question > > > On May 7, 2012, at 4:45 PM, Kebbon Irwin wrote: > > > > > Anyone know/remember how to do this:I have a string in my input buffer > > XX*YYYNNI want to place just YYYNN in my output bufferI feel I should be > > able to do this without writing my own user mode or a program that does a > > procread/procwrite....Thanks,Kebbon > > Unidata 7.1 Ecltype P > > _______________________________________________ > > U2-Users mailing list > > U2-Users@listserver.u2ug.org > > http://listserver.u2ug.org/mailman/listinfo/u2-users > > I don't know if unidata supports this (has anyone ever seen a unidata proc > manual?) but in PQN proc on Reality, the MV command can apply a conversion: > > MV > > Purpose > > To copy data between the input buffer, output buffers, file buffers and > select registers. > > Syntax > > MV destination source{,source}...{,*{n}}{,_} > > or > > MV destination source{*source}... > > Syntax Elements > > destination is a direct or indirect reference to a buffer or > select register that you want the data copied to. If the destination is a > select register, the source can only be a direct or indirect reference to a > file buffer. > > source is the data you want to copy. The source can be: > > · a direct or indirect reference to a buffer or select register that > contains the data you want to copy. > > · a direct or indirect reference to a buffer followed by > ';input-conversion;' or ':output-conversion:'. See the topic English > Conversions for details. > > · a string of zero or more characters enclosed in single or double > quotes. An uneven number of quotes now gives a syntax error. > > · a SYSTEM function that returns system/database information. > > · a single character expressed in one of two ways: > > Xx where x is a hexadecimal number in the range 00 to FF. Thus, XFD is a > value mark. > > In where n is a decimal number in the range 0 to 255. Thus, I253 is a > value mark. > > ,* copies all source parameters starting with the > specified parameter. The destination buffer or select register is truncated > after the last parameter is copied if * is the last operand in the source > field. > > ,*n copies n further source parameters following (and > in addition to) the specified parameter. > > ,_ specifies that the destination is truncated after > the source is copied. > > *source concatenates the source values into one attribute in > the destination. > > Select Register Destination > > If you use a select register as the destination, then the only valid source > is a direct or indirect reference to a file buffer. For example: > > MV !1 &5.9 or MV !3 &3.%1 > > Creating Null Attributes or Parameters > > If the attribute or parameter number in destination is larger than the > current number of attributes or parameters, the Proc processor automatically > creates null values to space out to the requested location. > > If the source is a literal string containing just two double quotes, then the > destination is nulled. > > Input Buffer Pointer > > If you reference the primary input buffer as the destination, that buffer is > selected as active and the buffer pointer is positioned at the beginning of > the moved string. > > Copying a Series of Values > > If you give a series of values as the source, the first value is copied into > the destination, and each subsequent source value is copied to a successive > location in the destination buffer. For example: > > MV %2 &2.7,"ABC",!2 > > copies attribute 7 of file buffer 2, the string "ABC", and the next value > from select register 2 into the 2nd, 3rd, and 4th parameters of the primary > input buffer. > > Preserving Parameters/ > Attributes > > If you want to change more than one attribute or parameter without changing > the attributes or parameters in between, you must use commas in the source > field to preserve those attributes or parameters. > > For example, if the primary input buffer contains ABC^DEF^GHI^JKL, and you > issue the following command, > > MV %1 "XX",,,"9999" > > the result is XX^DEF^GHI^9999. The command replaces the 1st and 4th > parameters with new values, leaving the 2nd and 3rd parameters unaltered. > > Concatenation > > If you separate a series of source values with asterisks (*) instead of > commas, the source values are concatenated into one attribute in the > destination. For example: > > MV %2 &1.7*"TEXT"*%4 > > concatenates the 4th attribute of the primary input buffer to the string > "TEXT", then concatenates that result to attribute 7 of file buffer 1, then > copies the result as a single parameter into the 2nd parameter of the primary > input buffer. > > Truncation > > If you specify an underline (_) as the last item in the source field, the > specified destination is truncated after the last source is copied. > > Copying the Entire Contents of a Buffer > > If you specify an asterisk (*) as the last item in a source field, all > attributes or parameters starting with the specified attribute or parameter > are copied. For example: > > MV &2.1 %10,* > > copies the 10th parameter of the primary input buffer to attribute 1 of file > buffer 2. It also copies parameter 11 of the primary input buffer to > attribute 2 of file buffer 2, and so on. The remainder of file buffer 2 is > truncated after the last parameter of the primary input buffer is copied. > > Copying a Series of Attributes > > If you specify an asterisk followed by an integer (*n) as a source field > element, the number of attributes or parameters specified by n are copied in > addition to the specified attribute or parameter. For example: > > MV &2.3 %4,*3 > > copies the 4th, 5th, 6th and 7th parameters of the primary input buffer to > attributes 3, 4, 5 and 6 of file buffer 2. The remainder of file buffer 2 is > not truncated. > > English Conversions > > The MV syntax supports English conversion of direct or indirect references in > source operands, provided that the destination is not a select register. The > format is similar to that used with IBH or IH: > > reference;input-conversion; > > reference:output-conversion: > > For example, MV %3 %3;T1,3; extracts the first three characters of %3 from %3 > and replaces the original %3 with just these three characters. An advantage > of using MV to perform conversions (rather than IH or IBH) is that MV uses an > extensible buffer that is only limited by your OS workspace area. > > See the English Reference Manual for more information on conversions. Note > that not all conversions are supported by Proc. > > Example 1 > > Command PIB Before PIB After > > MV %4 %2 TEST^ABC^12^ TEST^ABC^12^ABC > > > Example 2 > > MV %1 "X",,"9" AB^CD^EF^GH X^CD^9^GH > > > Example 3 > > MV %5 "X" ABC ABC^^^^X > > > Example 4 > > Command File Buffer 4 Before File Buffer 4 After > > MV &4.1 &2.1,* 000 1494 000 1494 > 001 39100 001 XXX > 002 AAA 002 7800 > 003 555 003 123 > 004 999 > > File Buffer 2 Before File Buffer 2 After > > 000 1342 000 1342 > 001 XXX 001 XXX > 002 7800 002 7800 > 003 123 003 123 > > This example moves attributes from file buffer 2 to file buffer 4 using the > (*) to move the entire contents of file buffer two. Note the truncation of > the fourth attribute of file buffer 4. > > Example 5 > > MV %1 "ONE","TWO","THREE" > MV %1 %2,%3 > > The first MV command copies "ONE" into the 1st parameter, "TWO" into the 2nd > parameter, and "THREE" into the third parameter of the primary input buffer. > > The second MV command copies the contents of the 2nd parameter (TWO) into the > 1st parameter, and the contents of the 3rd parameter (THREE) into the 2nd > parameter of the primary input buffer. > > Example 6 > > Command PIB Before and After > > MV #3 %2 DSPLY^DESC^QTY > > > POB Before POB After > > LIST^INV^ LIST^INV^DESC^ > > > Example 7 > > Command PIB Before and After > > MV &4.2 %5 UPDATE^CUST^1423^L.NAME^SMITH > > > File Buffer 4 Before File Buffer 4 > After > > 000 1423 000 1423 > 001 24000 001 24000 > 002 CLARK 002 SMITH > 003 ROGER 003 ROGER > . . > . . > . . > > Example 8 > > Command PIB Before and After > > MV &3.1 %3,_ FIX^AB-3211^XYZ > > > File Buffer 3 Before File Buffer 3 > After > > 000 AB-3211 000 AB-3211 > 001 2353 001 XYZ > 002 2460 > > _______________________________________________ > U2-Users mailing list > U2-Users@listserver.u2ug.org > http://listserver.u2ug.org/mailman/listinfo/u2-users _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users