BUFFER fl MEMORIAGracas aos buffers, os dados sao movimentados corretamente, para os arquivos especificados.O default de arquivos que podem ser abertos simultaneamente no Pascal e 16. Se voce deseja aumentar onumero de arquivos que podem permanecer abertos basta usar a diretiva F do compilador. {$F20}.Voce tambem pode alterar o numero de arquivos abertos ao dar boot no sistema, uando a declaracaoFILES do arquivo CONFIG.SYS, alem tambem de poder estabelecer o numero de buffers utilizaveis(BUFFERS).Exemplo:{$F20}uses crt;type dados = recordnome: string[30];tel: string[10];end;vararq_alunos: text;registro: dados;beginclrscr;assign(arq_alunos,ALUNSO.DAT); Abrindo um Arquivo-TextoUm determinado arquivo-texto pode ser aberto para leitura ou gravacao, mas nao para ambas operacoes aomesmo tempo.O Turbo Pascal fornece tres procedures diferentes para abertura de um arquivo-texto:a) Rewrite (var de arquivo): cria um novo arquivo e o abre para operacoes de escrita. Apos a abertura,podemos usar procedures WRITE e WRITELN para escrever os dados e linhas de texto no arquivo.Caso o nome do arquivo ja exista no disco, este procedimento destroi o arquivo antigo e cria outrovazio e com o mesmo nome, isto significa que todos os dados do arquivo existente serao perdidos.b) APPEND (var de arquivo): abre um arquivo-texto ja existente, de modo que podemos adicionarnovos registros no fim do arquivo. Ocorre um erro de I/O se o arquivo nao existir no disco. Apos aabertura, podemos usar as procedures WRITE e WRITELN para escrever dados no arquivo.c) RESET(var de arquivo): abre um arquivo ja existente para leitura. Apos a abertura do arquivo,podemos usar as procedures READ e READLN para lermos dados e linhas de texto do arquivo.Em contraste com a procedure REWRITE que cria um arquivo novo destruindo o antigo, caso exista, asprocedures APPEND e RESET assumem a existencia de um arquivo nomeado no disco. Se o arquivo naopuder ser localizado, em ambos os casos, resultarao em erros de I/O em tempo de execucao.Exemplo:uses crt;type dados = recordnome: string;tel: string;end;varregistro: dados;arq_reg: text;beginclrscr;assign(arq_reg,ALUNOS.DAT);{$I-}reset(arq_reg);{$I+}if IOResult = 0 thenwrite(Arquivo ALUNOS.DAT aberto para leitura);elsebeginrewrite(arq_reg);write(Arquivo ALUNOS.DAT criado);end;readkey;close(arq_reg);end.Escrevendo Dados num Arquivo-Texto:Veja o programa-exemplo abaixo:uses crt;type dados = recordnome: string;tel: string;end;varregistro: dados;arq_reg: text;conf: char;beginclrscr;assign(arq_reg,ALUNOS.DAT);{$I-}append(arq_reg);{$I+}if IOResult = 0 thenwriteln(Arquivo ALUNOS.DAT aberto para leitura);elsebeginrewrite(arq_reg); write(Arquivo ALUNOS.DAT criado);end;readkey;repeatwrite(Entre com um nome: ); readln(registro.nome);write(Seu telefone: ); readln(registro.tel);write(Confirma gravacao ? : ); conf := upcase(readkey);if conf = S thenwriteln(arq_reg,registro.nome,#32,registro.tel);until conf=N;close(arq_reg);end.Observe que o comando WRITELN automaticamente insere ao final da linha um caracter de retorno decarro (#13) e um de alimentacao de linha (#10).Podem ser usados como caracteres delimitadores de campos: espaco (#32) e tabulacao (#9).Fechando um Arquivo-Texto:Para fechar qualquer arquivo aberto, o Pascal dispoe da procedure CLOSE, como foi visto nos exemplosanteriores de programas.Notas sobre o comando close: Se varios arquivos foram abertos simultaneamente, teremos que fecha-los individualmente, usando umcomando close para cada um. O comando CLOSE fecha o arquivo externo em disco, mas nao termina com o assinalamento feito pelocomando ASSIGN. Isto significa que o programa pode usar um comando REWRITE, RESET ouAPPEND apos o comando CLOSE se necessario. CLOSE e um comando muito importante, pois e usado para manter a integridade e exatidao dosarquivos de dados. Relembre que o buffer atua como um intermediario entre o programa e o arquivo emdisco. Quando se executa uma operacao