Controle de fluxo
Eof
Eof(Stream)
Devolve True (verdadeiro) quando chega ao final do Arquivo e False (falso) em caso
contrário.
Public Sub Main()
Dim Arquivo As Stream
Dim Linhas As String
Arqui vo = Open "/etc/passwd" For Read
While Not Eof(Arquivo)
Line Input #Arquivo, Linhas
Print Linhas
Wend
Close Arquivo
End
Lof
Lof(Stream)
Se o Stream (Fluxo de dados) é um arquivo, devolve seu tamanho. Se em lugar de um
arquivo é um Socket de uma conexão de rede ou um objeto Process, devolve o número
de bytes que podemos ler de uma só vez.
Uma vez vista as sentenças mais comuns para manipular o fluxo de dados, Vamos a
alguns exemplos de uso:
Public Sub Main()
Dim Arquivo As Stream
Arquivo = Open "/etc/passwd" For Read
Print Read #Arquivo, Lof(Arquivo)
Close Arquivo
End
Seek
Seek[#] Stream, Posição
Define a posição do ponteiro no Stream.
Para a próxima operação de leitura ou gravação.
A posição é definida por um valor que representa a quantidade de bytes onde o
ponteiro é posicionado. No caso a seguir o ponteiro é movido 10 bytes em
relação ao inicio do arquivo.
Seek #Arquivo, 10
Se valor referente a posição for negativa, o fluxo de ponteiro é movido relativamente ao
final do Stream. No exemplo a seguir 10 bytes antes do final do arquivo.
14
Seek #Arquivo, -10
Usamos a função Lof para mover o ponteiro para o fim do Stream,
Seek #Arquivo, Lof(Arquivo)
O exemplo a seguir mostra como mover o ponteiro e realizar uma operação de leitura
no arquivo.
Public Sub Main()
Dim Arquivo As Stream
Arquivo = Open "/etc/passwd" For Read
Seek #Arquivo, 10
Print Read #Arquivo, 10
Seek #Arquivo, -10
Print Read #Arquivo, 10
Seek #Arquivo, Lof(Arquivo)
Arquivo.Close
End
Seek
Posição = Seek(Stream)
Pega a posição do ponteiro no Stream.
Pega a posição do ponteiro no Stream e retorna o valor atual do ponteiro.
O valor de retorno é um longo inteiro.
Muitos tipos de Stream não tem um ponteiro: como por exemplo, Processo,
soquete, …
Public Sub Main()
Dim Arquivo As Stream
Arquivo = Open "/etc/passwd" For Read
Seek #Arquivo, Lof(Arquivo)
Print Seek(Arquivo)
Arquivo.Close
End
Flush
Flush [[#] Stream]
Limpa a saída de uma Stream bufferizada.
Se nenhum stream é especificado, todos os stream abertos é limpo.
15
Download

Controle de fluxo Eof Devolve True (verdadeiro) quando chega ao