Formas de tratar a los archivos.
Individuales
Un solo fichero de entrada. Puede o no haber un fichero de salida.
- Genérico: es el proceso de carga o generación, tiene como objetivo crear un archivo consistente y, de ser posible, congruente grueso.
- Emisión: tiene como objetivo la salida impresa de datos.
- Listador en bruto: imprime tal cual lo que está en el fichero.
- Padrón: los datos están ordenados. Puede haber encabezados y totales.
- Estadísticos: hacen un recorrido del archivo para contabilizar elementos, emitiendo un cuadro estadístico de resumen, ahorrando papel pero usando memoria mucha interna.
- Corte de control: dan padrones con totales parciales. Requieren entradas ordenadas por un Campo Clave de clave compleja.
Múltiples
Dos o más ficheros de entrada y uno o más ficheros de salida.
Mezcla
Por lo menos dos ficheros de entrada y uno de salida que es el resultado de la combinación de las entradas.
- Homogénea: entradas con igual formato.
- Heterogénea: entradas con distintos formatos.
Los ciclos de apareo pueden ser:
- Incluyentes:
MIENTRAS clave_1 <> HV O clave_2 <> HV HACER... - Excluyentes:
MIENTRAS NFDA(archivo_1) Y NFDA(archivo_2) HACER...
Actualización Secuencial
No se cambia el archivo original, sino que se crea uno nuevo. Involucran un archivo maestro y uno de movimiento.

Unitaria: cero o un Registro del fichero movimiento por cada registro del maestro.
[abrir_archivos]
[leer_maestro]
[leer_movimiento]
MIENTRAS clave_mae <> HV O clave_mov <> HV HACER
SI clave_mae = clave_mov ENTONCES
[procedimiento_para_registros_iguales] // bajas y modificaciones.
CONTRARIO
SI clave_mae < clave_mov ENTONCES
registro_salida := reg_maestro
Escribir(archivo_salida, registro_salida)
Leer_Maestro()
CONTRARIO
[procedimiento_para_archivos_distintos] // altas.
FIN_SI
FIN_SI
FIN_MIENTRAS
[cerrar_archivos]
Por lotes: cero o más registros del fichero movimiento por cada registro del fichero maestro.
[abrir_archivos]
[leer_maestro]
[leer_movimiento]
MIENTRAS clave_mae <> HV O clave_mov <> HV HACER
SI clave_mae < clave_mov ENTONCES // maestro sin movimiento.
registro_salida := registro_maestro
Escribir(archivo_salida, registro_salida)
[leer_maestro]
CONTRARIO
SI clave_mae = clave_mov ENTONCES // lote con movimiento.
auxiliar := registro_maestro
MIENTRAS clave_mae = clave_mod HACER
[procedimiento_para_lote_con_movimiento] // bajas o modifs.
[leer_movimiento]
FIN_MIENTRAS
registro_salida := auxiliar
Escribir(archivo_salida, registro_salida)
[leer_maestro]
CONTRARIO // movimiento sin maestro.
auxiliar := registro_movimiento
auxiliar.marca_baja := ''
[leer_movimiento]
MIENTRAS clave_auxiliar = clave_mov HACER
[procedimiento_para_lote_con_movimiento] // altas.
[leer_movimiento]
FIN_MIENTRAS
Escribir(archivo_salida, auxiliar)
FIN_SI
FIN_SI
FIN_MIENTRAS
[cerrar_archivos]
Actualización Indexada
Para archivos indexados.