× 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.



CPYFRMSTMF is the main command you want.  Below is a procedure that copies a
cd file to a db file that we use.

Scott Mildenberger

     p cpy_cd          b                   export
     d cpy_cd          pi                  like(msg_t)
     d   from_cdfile                 30    const varying
     d   to_dbfile                   10    const


     d cmpfile         s                   like(from_cdfile)
     d found           s               n


      ***  Determine the comparing string, if the last character is '*'
      ***    then only compare up to that position, otherwise compare all
      ***    30 positions to force exact match.
     c                   if        %subst(from_cdfile :
     c                                  %len(%trim(from_cdfile)) : 1) = '*'
     c                   eval      cmpfile = %subst(from_cdfile : 1 :
     c                                  %len(%trim(from_cdfile)) - 1)
     c                   else
     c                   eval      %len(cmpfile) = 30
     c                   eval      cmpfile = *blanks
     c                   movel     from_cdfile   cmpfile
     c                   endif

      ***  Do DSPFD to an outfile to find the record length of the PF.
     c                   if        syscall('dspfd file(' + to_dbfile +
     c                                     ') ' +
     c                                     'type(*rcdfmt) output(*outfile)'+
     c                                     ' outfile(qtemp/dspfd_out)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   if        syscall('ovrdbf file(qafdrfmt) ' +
     c                                     'tofile(qtemp/dspfd_out)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   open      qafdrfmt
     c                   read      qafdrfmt
     c                   if        %eof(qafdrfmt)
     c                   return    'NODSPFD'
     c                   endif

     c                   close     qafdrfmt

      ***  Do DSPOPT to an outfile to find the file requested.  Loop
      ***    through all entries until a match is found.
     c                   if        syscall('dspopt vol(*mounted) '  +
     c                                     'dev(opt01) data(*filatr) '    +
     c                                     'path(''/'') output(*outfile)' +
     c                                     ' outfile(qtemp/dspopt_out)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   if        syscall('ovrdbf file(qamodfaf) ' +
     c                                     'tofile(qtemp/dspopt_out)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   eval      found = *off

     c                   open      qamodfaf
     c                   read      qamodfaf

     c                   dow       not %eof(qamodfaf) and not found
     c                   if        %subst(offile : 2 : %len(cmpfile)) =
     c                                                           cmpfile
     c                   eval      found = *on
     c                   else
     c                   read      qamodfaf
     c                   endif
     c                   enddo

     c                   close     qamodfaf

     c                   if        not found
     c                   return    'NotonCD'
     c                   endif

      ***  Create a temp file in qtemp with record length matching
      ***    the physical file.
     c                   if        syscall('dltf qtemp/cdtemp' : 'CPF2105')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   if        syscall('crtpf file(qtemp/cdtemp)'+
     c                                     ' rcdlen(' +
     c                                     %trim(%editc(rflen : 'Z')) +
     c                                     ') size(*nomax)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

      ***  Copy the CD file to the temp file.
     c                   if        syscall('cpyfrmstmf '            +
     c                                  'fromstmf(''qopt/' + %trim(ofvid) +
     c                                  %trim(offile) + ''') ' +
     c                                  'tombr(''qsys.lib/qtemp.lib/'     +
     c                                  'cdtemp.file/cdtemp.mbr'') '      +
     c                                  'mbropt(*replace)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

      ***  Copy the temp file to the physical file.
     c                   if        syscall('cpyf qtemp/cdtemp ' +
     c                                  to_dbfile + ' mbropt(*replace) ' +
     c                                     'fmtopt(*nochk)')
     c                             <> *blanks
     c                   return    syscallerr
     c                   endif

     c                   return    *blanks

     p cpy_cd          e


> -----Original Message-----
> From: Shelly.Sommerfeld@state.sd.us
> [mailto:Shelly.Sommerfeld@state.sd.us]
> Sent: Friday, October 12, 2001 7:54 AM
> To: midrange-l@midrange.com
> Subject: Retrieving Information
>
>
> I am trying to load some information off of a CD through a couple of
> programs.  We are currently do this from a tape.  We are
> upgrading to a 250
> model and would like to start using CD's.  However I am
> having a little bit
> of trouble with copying the information from the CD to some
> files.  I have
> tried most of the OPT commands and I guess that I am at my
> wits end with
> this and would like some help as to go about this.       Thanks
>
> Shelly Sommerfeld
> Bureau of Information and Telecommunications
> Development Team 3
> (605) 773-5808
>


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.