de saida, somente permite gravacao.e) UPDATEindica um arquivo de E/S, permitindo tanto leitura quanto atualizacao dosdados.f) SEQUENTIALos dados sao armazenados e lidos sequencialmente.g) DIRECTos dados podem ser armazenados ou lidos diretamente em sua posicao. Correspondeao RANDOM do COBOL.h) EXTERNAL/INTERNALespecifica se o arquivo deve ser reconhecido externamente ou internamente nobloco em que foi declarado.i) KEYED utilizado em arquivosRECORD que possuam chave em seus registros (por exemplo, arquivos VSAM).j) ENVIRONMENTespecifica o metodo de acesso utilizado arquivo e informacoes sobre o tipo doregistro (DCB do arquivo)O atributo ENVIRONMENT pode ser abreviado para ENV.Observe agora os atributos que sao incompativeis entre si:STREAM/RECORDINPUT/OUTPUT/UPDATE;PRINT/RECORDSEQUENTIAL/DIRECT/TRANSIENT/STREAMENVIRONMENT/DCB doarquivoEXTERNAL/INTERNALKEYED/STREAMExemplos:DCL ARQ FILE INPUT STREAM;DCL ARQUIVO FILE OUTPUT RECORD SEQUENTIAL;DCL A FILE INPUT RECORD ENV(F(80));No primeiro exemplo ARQ e um arquivo de entrada a serutilizado na modalidade STREAM. Vale ressaltar que os atributos STREAM e RECORDespecificam o tipo de transmissao de dados do arquivo.No segundo exemplo ARQUIVO e o nome de um arquivo de saidaque sera acessado na modalidade de registros sequenciais.No terceiro exemplo A e um arquivo de entrada cujosregistros terao comprimento fixo (F = Fixed) igual a 80 bytes.11.2. Comando OPENComo se sabe, todo arquivo para ser utilizado precisaprimeiramente ser aberto, o que significa dar permissao de uso a ele.A sintaxe do comando open e:OPEN FILE (NOME-INTERNO1) TITLE(NOME-JCL1) ATRIBUTOS,FILE(NOME-INTERNO2) TITLE (NOME-JCL2) ATRIBUTOS,...FILE(NOME-INTERNON) TITLE (NOME-JCLN) ATRIBUTOS;Onde:A Nome-interno e o identificadorque fara referencia ao arquivo dentro do programa PL/I.A Nome-JCL e o DDNAMEespecificado na JCL para o arquivo. O DDNAME aponta para o nome fisico doarquivo no dispositivo de armazenamento (DSNAME).A Atributos sao os mesmosvistos anteriormente para o comando DECLARE.Observe a relacao existente entre o programa PL/I e oarquivo gravado.Observe que multiplos arquivos podem ser abertos com umunico comando OPEN.Exemplos:DCL CLI FILE RECORD INPUT, PRODFILE RECORD OUTPUT ENV(F(80));OPEN FILE (CLI) TITLE (CLIENTES), FILE(PROD) TITLE(PRODUTOS);A declaracao de atributo no comando OPEN e opcional. Uma vezque um atributo ja foi informado no comando DECLARE, nao ha necessidade de umaredeclaracao. O interessante e que em alguns casos pode ser necessario fazeruma declaracao parcial do arquivo e declarar os atributos omitidos no momentode sua abertura. Observe:DCL CLI FILE RECORD, PRODFILE RECORD ENV(F(80));OPEN FILE (CLI) TITLE (CLIENTES) INPUT, FILE(PROD) TITLE(PRODUTOS) OUTPUT;Isso permitira que um arquivo seja aberto de maneirasdiferentes em um mesmo programa.11.3. Comando CLOSETodo arquivo uma vez aberto (com permissao de uso) precisaser fechado. O comando CLOSE e responsavel por essa tarefa.Sintaxe:CLOSE FILE (ARQUIVO1),FILE(ARQUIVO2),...FILE(ARQUIVON);11.4. Arquivos PRINTSao arquivos OUTPUT utilizados para formatacao de saidas naimpressora ou layouts em arquivos em discos ou fitas magneticas.Permitem o uso dos atributos constantes na tabela a seguir: Opcoes Comandos Funcao LINESIZE(n) OPEN No maximo de caracteres por linha PAGESIZE(n) OPEN No maximo de linhas por pagina PAGE PUT Mudar de pagina antes da impressao LINE(n) PUT Mudar para a linha n antes da impressao SKIP(n) PUT Pular n-1 linhas antes da impressao COL(n) PUT Mudar para a coluna n antes da impressao X(n) PUT Salta n espacos antes da impessao Os arquivos PRINT exigem que seja acrescido 1 ao tamanho dalinha a ser impressa. O primeiro caracter nunca e impresso, servindo apenaspara o controle da impressao por parte do sistema operacional (caracterCTLASA). Sendo