× 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: Formatting Data in RPG 4
  • From: Jim Langston <jimlangston@xxxxxxxxxxxxxxxx>
  • Date: Wed, 25 Apr 2001 16:47:41 -0700
  • Organization: Pacer International

It all depends on the input and output formats.  If the input format 
is fixed length, always 14 characters, then it is a simple matter of 
adding the fields together to make your 40 column record.  I have done
this many times before in other languages.

Pseudo code:

Output_record = blanks
do until end of file
  read record 
  if length(output_record) + length(input_record) > 80
      length_to_add = 80 - length(output_record)
      output_record = output_record + left(input_record, 1, length_to_add)
      write output_record
      output_record = right(input_record, length(input_record) - Length_to_add)
  else  
      output record = output record + input record
  end if
end do
if length(output_record) > 0
  write output_record
end if

This would produce output like (say 20 column ouput record an 6 char input)
INPUT:
111111
222222
333333
444444
555555
666666
777777

OUTPUT:
11111122222233333344
44445555556666667777
77

Is that what you want?
  
Regards,

Jim Langston

Me transmitte sursum, Caledoni!

Peter Dow wrote:
> 
> Hi Justin,
> 
> There was something similar on this recently, you might want to check the
> archives.
> 
> My first thought is dependent on the file size. Keep adding all records to a
> large field, then write the large field out in 80-byte chunks:
> 
>         c            read        inputfile
>         c            dow        not %eof(inputfile)
>         c            eval    largefield = largefield & %trim(currentrec)
>         c            read        inputfile
>         c            enddo
> 
> then
> 
>         c            dou        x > %len(largefield)
>         c            eval        outputrec = %subst(largefield:x:80)
>         c            write       outrec
>         c            eval         x = x + 80
>         c            enddo
> 
> or something along those lines.
> 
> hth,
> Peter Dow
> Dow Software Services, Inc.
> 909 425-0194 voice
> 909 425-0196 fax
> 
> ----- Original Message -----
> From: "Justin Kiteley" <justin@asiwms.com>
> To: <RPG400-L@midrange.com>
> Sent: Wednesday, April 25, 2001 11:48 AM
> Subject: Formatting Data in RPG 4
> 
> > Hello everyone,
> >
> >    Anybody have any experience formatting data into a "snake" file?  I've
> > written a module that reads in data from a file, uses checkr to find out
> the
> > right most data in an 80 column field, if the right most data is not 80
> then
> > reads the next record, uses %subst to fill up the orig line to 80 chars,
> > writes out the new 80 char field and so on. Currently I'm having trouble
> > with recognizing the necessary spaces in the data and allowing for them.
> >
> >    My question:  Is there an API, command, or method that is easier to
> > implement and follow and that will accomplish the same thing that I'm
> doing?
> > Thanks in advance for any help!
> >
> >
> > Justin Kiteley
> > justin@asiwms.com
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-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-Ups:
Replies:

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.