× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: CPYF behavior
  • From: "Simon Coulter" <shc@xxxxxxxxxxxxxxxxx>
  • Date: Sat, 15 Jan 00 09:19:57 +1100


Hello Peter,

Perhaps I didn't word it well enough.  I thought it was clear.  I doubt there 
is duplicated 
code.  The file is not copied, the data is.  The create file routine creates a 
duplicate file.  
The copy routine adds a member and copies data.

if (not-exist tgt-file)
        create-tgt-file();
if (not exist tgt-mbr)
        add-tgt-mbr();
if (src-nbr-rcds > 0) do
        if replace-yes
                truncate-data-space();
        copy-data();
enddo;
else if (not tgt-mbr-added)
                complain();

As to WHY?  Because!  (My favourite answer as a three-year-old).  Because it 
made sense to the 
author of the code.  It makes sense to me too.

Would you prefer that CPYF successfully created a file, added a member, and 
then complained 
about no data to copy?  In that case it should check the data first and 
CRTFILE(*YES) would 
never work unless there was also data to copy.  I don't think that is correct.

Would you prefer that copying no data was successful?  In which case you could 
not rely on the 
data in the target file unless copying zero records truncated the target data 
space.

OK, maybe reading all of the manuals is a little extreme but that's what I do.  
The manuals 
are my first point of call when I need information.  It is not necessary to 
have read them in 
detail but you should be familiar with the titles and contents so you know 
where to find 
information.  How many questions do I ask of this list?  Very few because I 
know where to find 
the information.  I have invested the time to increase my knowledge without 
expecting others 
to just tell me the answer.  That's not a particular dig at you.  The "all of 
them" was meant 
as all those you can be reasonably expected to know as part of your job.

Regards,
Simon Coulter.

«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
«» FlyByNight Software         AS/400 Technical Specialists       «»
«» Eclipse the competition - run your business on an IBM AS/400.  «»
«»                                                                «»
«» Phone: +61 3 9419 0175      Mobile: +61 0411 091 400           «»
«» Fax:   +61 3 9419 0175      mailto: shc@flybynight.com.au      «»
«»                                                                «»
«» Windoze should not be open at Warp speed.                      «»
«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
//--- forwarded letter -------------------------------------------------------
> X-Mailer: Microsoft Outlook Express 5.00.2314.1300
> Date: Fri, 14 Jan 2000 09:51:49 -0800
> From: "Peter Dow" <pcdow@yahoo.com>
> To: MIDRANGE-L@midrange.com
> Reply-To: MIDRANGE-L@midrange.com
> Subject: CPYF behavior

> 
> Hi Simon,
> 
> You have restated what I said very well, however, you have not answered the
> question - why? As you have probably noticed, when you copy an empty file to
> an empty existing file, the result is the same as copying an empty file to a
> non-empty file. So it's clear that it's following a different code path.
> 
> It just seemed to me that most programmers would not have duplicated the
> code to actually copy the file after having to create it -- the create file
> would simply be a routine performed when the to-file doesn't exist and the
> user specified CRTFILE(*YES), then it would return to the usual copyfile
> processing.
> 
> BTW, a simple RTM is sufficient, and as far as "all of them", I'd say that's
> a little overboard. For example, reading the 5494 Planning Guide or 5494
> Users Guide doesn't strike me as very productive since I am not involved in
> choosing or setting up hardware.
> 
> Regards,
>  Peter
> 
> ----- Original Message -----
> From: Simon Coulter <shc@flybynight.com.au>
> To: <MIDRANGE-L@midrange.com>
> Sent: Friday, January 14, 2000 4:36 AM
> Subject: Re: CPYF behavior
> 
> 
> > h
> > Hello Peter,
> >
> > Assuming that you are running the CPYF commands sequentially then it is
> because the
> > crtfile(*yes) in the second example is being ignored since the target file
> exists.  That causes
> > the 
de to follow a different code path.
> >
> > In the first instance the copy is successful and creates an empty file.
> >
> > In the second instance the copy fails because ordinarily you would not
> want to copy an empty
> > file over a file that contains records.  CPYF does not check if the target
> file contains data.
> > If the target file exists and the source file is empty, the copy fails.
> >
> > With reagrd to the final paragraph, one of the joys of programming is
> ferreting out the
> > unobvious!  And it's documented so I get another chance to say RTFM!  All
> of them.
> >
> > Regards,
> > Simon Coulter.
> >
> > «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
> > «» FlyByNight Software         AS/400 Technical Specialists       «»
> > «» Eclipse the competition - run your business on an IBM AS/400.  «»
> > «»                                                                «»
> > «» Phone: +61 3 9419 0175      Mobile: +61 0411 091 400           «»
> > «» Fax:   +61 3 9419 0175      mailto: shc@flybynight.com.au      «»
> > «»                                                                «»
> > «» Windoze should not be open at Warp speed.                      «»
> > «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
> > file://--- forwarded
> letter -------------------------------------------------------
> > > X-Mailer: Microsoft Outlook Express 5.00.2314.1300
> > > Date: Thu, 30 Dec 1999 12:01:48 -0800
> > > From: "Peter Dow" <pdow@flashcom.net>
> > > To: MIDRANGE-L@midrange.com
> > > Reply-To: MIDRANGE-L@midrange.com
> > > Subject: CPYF behavior
> >
> > >
> > > Hi,
> > >
> > > After reading Simon Coulter's words on the CPYF command in the RPG-400
> > > mailing list, perhaps you,  Simon, or someone else can explain why CPYF
> > > behaves differently regarding an empty "from" file. In the 1st instance,
> > > CPYF simply gives a completion message, CPC2957:
> > >
> > > crtpf qtemp/test rcdlen(1)
> > > File TEST created in library QTEMP.
> > > Member TEST added to file TEST in QTEMP.
> > >
> > > cpyf qtemp/test qtemp/test1 crtfile(*yes) mbropt(*replace)
> > > Physical file TEST1 created in library QTEMP.
> > > Member TEST added to file TEST1 in QTEMP.
> > > No records copied from file TEST in QTEMP.
> > >
> > >
> > > While in this instance, it gives the escape message, CPF2817:
> > >
> > > cpyf qtemp/test qtemp/test1 crtfile(*yes) mbropt(*replace)
> > > Empty member TEST in file TEST in library QTEMP is not copied.
> > > Copy command ended because of error.
> > >
> > >
> > > Just curious.
> > >
> > > Also, thanks for the tip about CPF2817 containing the diagnostic
> message's
> > > ID in its message data. This would be more obvious if CPF2817 showed the
> > > message data in either the 1st or 2nd level text.
> > >
> > > Peter Dow
> > > Dow Software Services, Inc.
> > > 909 425-0194 voice
> > > 909 425-0196 fax

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.