    Curso de scripvox - Aula 12 (Por Fabiano Ferreira)
    Trabalhando com arquivos - Parte II

    Dando continuidade ao assunto iniciado na aula anterior, hoje vamos
ver como ler informações gravadas em um arquivo.
    Como vimos na aula anterior, para se trabalhar com um arquivo,
devemos abrí-lo e   associar seu nome a um número de 0 a 9.


    A forma de abrir um arquivo para leitura é praticamente igual a
forma de abertura para gravação.
Basta não colocar o símbolo & (e comercial) ao fim da linha.
    Vejamos um exemplo:

Abre #1 "meu arquivo.txt"

    No exemplo acima, 'meu arquivo.txt' será aberto para leitura.
Obviamente que, o arquivo deve existir, caso contrário, o programa acusará erro.
    Na próxima aula, vamos aprender a verificar se um determinado
arquivo existe.
Isso será bastante importante para evitar erros desse tipo.
    Mas, o que devemos fazer depois de abrir o arquivo para leitura?
    Como acessamos as informações lá gravadas?
    A forma de acessar um arquivo no scripvox é lendo linha por linha.
    Para isso, utilizamos o comando Lê, o mesmo que utilizamos para
armazenar dados do teclado. Inserindo-se o nome lógico do arquivo a ser
lido após o
comando lê, uma linha do arquivo é copiada para a variável.
    A leitura é feita da primeira para a última linha do arquivo.

    Vejamos um exemplo prático:
    Primeiro, vou gravar um arquivo texto com o seguinte conteúdo:

    Oi, isso é um teste.
    Será que vai dar certo?
Espero que sim!

    Vou salvar esse arquivo como teste.txt.
    Agora, vou montar um programa em scripvox para ler as linhas desse
arquivo e jogar na tela.

Abre #1 "teste.txt"
Lê #1 l
Escreve l
Lê #1 l
Escreve l
Lê #1 l
Escreve l
Fecha #1
Termina mudo

    O programa acima pega as três linhas do arquivo texto e joga na
tela.
    A variável que recebe as linhas do arquivo é a variável l.

    Mas... ainda falta alguma coisa!
    Este código está muito repetitivo, não?
    Quer dizer que se o arquivo tiver 1000 linhas, vou ter de escrever
1000 vezes o trecho
Lê #1 l
Escreve l...?
    Poderia usar o comando repete, ou enquanto, mas... como vou saber
quantas linhas tem o arquivo?
    Conto num editor de texto e depois implemento esse programa de
acordo com o número de linhas do arquivo?
    Pode ser, mas se esse arquivo sofrer alterações... Aí eu vou ter de
alterar meu código!

    Para evitar tudo isso, existe o comando checa.
    Sua forma de utilização é:
checa, um espaço e uma variável.
    A variável selecionada pode receber dois valores:
0 - indica que o arquivo ainda não acabou.
1 - indica que o arquivo chegou ao fim.

    Utilizando esse comando juntamente com um bloco de repetição,
podemos construir um programa que leia um arquivo, independente do seu
número de linhas e escreva as linhas na tela.
    Vejamos:

Escreve "Qual o nome do arquivo a ler:"
Lê a
Abre #1 a

Lê #1 l
checa c
enquanto c=0
Escreve l
Lê #1 l
Checa c
Fim enquanto
Fecha #1
Termina mudo

    O exemplo acima lê continuamente um arquivo e escreve as linhas
lidas na tela.
O fim da repetição acontece quando o comando checa retornar o valor 1,
indicando fim do arquivo.

    Para finalizar, gostaria apenas de acrescentar uma informação que
acabou sendo deixada de fora na aula anterior:
    Podemos abrir e manipular mais  de um arquivo ao mesmo tempo, sendo cada um
associado a um número diferente, por exemplo:

Abre #1 "arq1.txt"
Abre #2 "arq2.txt"&

    O exemplo acima, abre arq1.txt para leitura e arq2.txt para escrita.
    Nessas condissões, podemos fazer:
Lê #1 l
Escreve #2 l

    Alguém saberia dizer o que essas duas linhas de código
fazem?
    Quero ver quem mata essa!
    Assim terminamos a aula11

    Exercício:

    Faça um programa que informe o número de caracteres de um arquivo texto.
O nome do arquivo deve ser passado pelo usuário.
    Para realizar esse exercício com sucesso, é importante rever
comandos visto em aulas passadas, como, por exemplo, comando soma,
função tamanho, blocos de repetição, desvio de execussão e outros
conceitos que podem ser utilizados na construção desse programa.

*Prazo de entrega até o dia 05/11 (devido a complexidade do trabalho
para quem está ainda com dificuldades de assimilar o conteúdo ), enviando a resposta para o endereço
sanfersite@uol.com.br

    Boa sorte!
