>Why do you want a VB data set with all the records the same length?

You've answered a different question.

The reason for asking was not "that's an impossible scenario, no-one in their 
right mind would ever want to do that", it was an attempt to elicit what the 
requirement at hand is. The "same length" is a little pokey-bit for Paul.

With Paul, there often seems to be a particular elephant around somewhere. And, 
although there are two reasons given for the use of IEBGENER (accident (should 
have been IDCAMS REPRO) and IEBGENER's potential to edit records (which exists, 
but which doesn't exist for REPRO)), even before the second reason appeared, I 
thought I could hear faint trumpeting and catch a whiff of peanuts.

Now, to copy FB (say LRECL 80, for fun) to VB (LRECL 84, needs those extra four 
bytes (even though only two of them are directly relevant) to tell everything 
there are 80 bytes of data) you could use REPRO.

You could also typo to VB using REPRO, and all will continue happily until 
something fails down the line with an "oh, my goodness, how could that possibly 
have happened, I got RC=0".

Or you could use IEBGENER. Where you could also typo to VB.

To put it another way, all things being equal (or equivalently equal, the data 
being the same length) you can just toss in IDCAMS REPRO or IEBGENER and hope 
that what you want them to do (in this particular case) is what you've asked 
them to do, because you are getting RC=0 whether the output RECFM happens at 
the time to contain F or V. Remembering that you yourself may have to look at 
this step some time in the future, as may others. Blind waste of time.

Or, TAAA-RRRAAHHH-TO-WOOOH!!, ground shakes and you manage to croak "if that's 
the way your breath smells, it's fine with me. Sir. Your Lordship. You 
Lordship, Sir". 

DFSORT.

Not really a typo, just using the wrong JCL and failing to use any control 
cards (the stuff REPRO needs), yet the result is the same (RC=0, file looks 
OK). How did that happen? Consult the manual. Unclear, but not precluded. Yet. 
It's probably DFSORT wot dun it all wrong. Yep, I'm sure of it. Certain. Now, 
how to prove I'm right!

Instead, DFSORT would be my first choice for the task (and second through 20th 
as well).

 OPTION COPY
 OUTFIL FTOV

If you wanted to exclude trailing blanks (or something else) there's VLTRIM.

 OPTION COPY
 OUTFIL FTOV,VLTRIM=C' '

Drops trailing blanks.

There is extensive further editing available (much more extensive than provided 
by IEBGENER).

You can go "the other way" (although in that case you need a BUILD/OUTREC on 
the OUTFIL as well) and also use VLFILL to pad with whatever byte-value you 
want.

I'm not saying it is foolproof, but the intent is clearer and the potential 
enormously expanded. 

By the way, Charles, if you want to MOD, why convert to V in one step and MOD 
to a V in another, when it can be done in one step, with one pass of the data? 
(or when, just for fun, you could MOD it as F anyway... and then process as U. 
No, that's not a real question either).

And, if testing a program which requires variable-length records would you 
really use records which are all the same length but which just happen to be 
V/VB?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to