En aquest mòdul, aprendrem com gestionar arxius en RPG. La gestió d'arxius és una part fonamental de la programació en RPG, ja que moltes aplicacions empresarials necessiten llegir, escriure i processar dades emmagatzemades en arxius. Explorarem els conceptes bàsics de la gestió d'arxius, incloent-hi la lectura i escriptura d'arxius, així com la manipulació de registres.

Objectius del Mòdul

  • Comprendre els conceptes bàsics de la gestió d'arxius en RPG.
  • Aprendre a obrir, llegir i escriure arxius.
  • Manipular registres dins dels arxius.
  • Gestionar errors relacionats amb la gestió d'arxius.

Conceptes Bàsics

Tipus d'Arxius

En RPG, els arxius es poden classificar en diversos tipus segons la seva funció i estructura:

  • Arxius Físics (PF): Contenen dades reals.
  • Arxius Lògics (LF): Són vistes o índexs sobre arxius físics.
  • Arxius de Sortida (PRTF): Utilitzats per a la generació de sortides impreses.

Declaració d'Arxius

Per utilitzar un arxiu en un programa RPG, primer cal declarar-lo. Això es fa a la secció de F-specs (File Specifications).

FMYFILE   IF   E           K DISK
  • F: Indica que és una especificació d'arxiu.
  • MYFILE: Nom de l'arxiu.
  • I: Indica que l'arxiu és d'entrada.
  • F: Indica que l'arxiu és de sortida.
  • E: Indica que l'arxiu és d'entrada/sortida.
  • K: Indica que l'arxiu està indexat (clau).

Obrir i Tancar Arxius

Els arxius es poden obrir i tancar automàticament en RPG, però també es poden gestionar manualment si cal.

C     *INZSR        BEGSR
C                   OPEN  MYFILE
C                   ENDSR

C     *INLR         BEGSR
C                   CLOSE MYFILE
C                   ENDSR

Lectura d'Arxius

Per llegir registres d'un arxiu, es poden utilitzar diverses operacions com READ, READE, READP, etc.

C                   READ  MYFILE
C                   DOW   NOT %EOF(MYFILE)
C                   // Processar el registre
C                   READ  MYFILE
C                   ENDDO

Escriptura d'Arxius

Per escriure registres en un arxiu, es pot utilitzar l'operació WRITE.

C                   WRITE MYRECORD

Exemple Pràctic

A continuació, es mostra un exemple complet de com llegir i escriure en un arxiu en RPG.

FMYFILE   IF   E           K DISK

D Record        DS
D  Field1               10A
D  Field2               20A

C     *INZSR        BEGSR
C                   OPEN  MYFILE
C                   ENDSR

C     *INLR         BEGSR
C                   CLOSE MYFILE
C                   ENDSR

C                   READ  MYFILE
C                   DOW   NOT %EOF(MYFILE)
C                   // Processar el registre
C                   EXSR  ProcessRecord
C                   READ  MYFILE
C                   ENDDO

C     ProcessRecord BEGSR
C                   // Exemple de processament
C                   MOVE  'NewValue' Field1
C                   WRITE MYFILE
C                   ENDSR

Exercicis Pràctics

Exercici 1: Lectura d'Arxius

Crea un programa RPG que llegeixi tots els registres d'un arxiu físic i mostri el contingut de cada registre a la consola.

Exercici 2: Escriptura d'Arxius

Crea un programa RPG que escrigui nous registres en un arxiu físic. Els registres han de contenir informació fictícia.

Exercici 3: Actualització d'Arxius

Crea un programa RPG que llegeixi registres d'un arxiu físic, actualitzi un camp específic de cada registre i escrigui els canvis de nou a l'arxiu.

Solucions

Solució a l'Exercici 1

FMYFILE   IF   E           K DISK

C     *INZSR        BEGSR
C                   OPEN  MYFILE
C                   ENDSR

C     *INLR         BEGSR
C                   CLOSE MYFILE
C                   ENDSR

C                   READ  MYFILE
C                   DOW   NOT %EOF(MYFILE)
C                   DSPLY Field1
C                   DSPLY Field2
C                   READ  MYFILE
C                   ENDDO

Solució a l'Exercici 2

FMYFILE   O    E           K DISK

D Record        DS
D  Field1               10A
D  Field2               20A

C     *INZSR        BEGSR
C                   OPEN  MYFILE
C                   ENDSR

C     *INLR         BEGSR
C                   CLOSE MYFILE
C                   ENDSR

C                   MOVE  'Value1' Field1
C                   MOVE  'Value2' Field2
C                   WRITE MYFILE

Solució a l'Exercici 3

FMYFILE   IF   E           K DISK

D Record        DS
D  Field1               10A
D  Field2               20A

C     *INZSR        BEGSR
C                   OPEN  MYFILE
C                   ENDSR

C     *INLR         BEGSR
C                   CLOSE MYFILE
C                   ENDSR

C                   READ  MYFILE
C                   DOW   NOT %EOF(MYFILE)
C                   MOVE  'Updated' Field1
C                   UPDATE MYFILE
C                   READ  MYFILE
C                   ENDDO

Conclusió

En aquest mòdul, hem après els conceptes bàsics de la gestió d'arxius en RPG, incloent-hi la lectura, escriptura i actualització de registres. Aquests coneixements són fonamentals per a la creació d'aplicacions empresarials que necessiten gestionar dades emmagatzemades en arxius. En el proper mòdul, explorarem l'accés a bases de dades, que ens permetrà treballar amb dades de manera més avançada i eficient.

© Copyright 2024. Tots els drets reservats