On Sun, 12 Nov 2023 17:14:49 -0700, Paul Gilmartin <paulgboul...@aim.com> wrote:
>RECFM=FBS prevents that. That is certainly a partial solution but the correct solution is VSAM RRDS or ESDS which eliminates the special handling. >That's mostly how the Divide instruction works. Division is not the hard part. Implementation is what's being discussed which involves division.. >... Fill the block with additional records and rewrite in place. What ever floats your boat. If the OP wants to fully implement that logic, it's available. >Why, in this 21st Century hasn't that function been added to the >access methods!? UNIX does it, as you say below. What makes you falsely claim that function doesn't exist. There is no difference between z/OS and Unix files in this respect. Your programs must deal with those extra records by ignoring them. Both must retain a pointer to the first available instead of using EOF. >I think that can be done by the Multiply instruction, provided >by most modern computer hardware. Wow, the computers you use can't multiply? I stated "times" which is another word for multiply. > But fixed-length records are >alien to UNIX -- I think they're a relic of UR-device practice. RECFM=FB & VB are not relics. It's a vital concept used by databases. A max length is required by VARCHAR for a reason. They know it's more efficient to add a number instead of scanning for X'00'. Databases encourage you to supply max length for everything and truly unknown lengths are avoided. Just because a basic concept is not understood by Unix programmers doesn't mean it doesn't have great value.