Instrução Seek
Define a posição para a próxima operação de leitura/gravação em um arquivo aberto usando a instrução Abrir .
Sintaxe
Procurar [ # ] número de arquivos, posição
A sintaxe de instrução Seek tem estas partes:
Sair | Descrição |
---|---|
númerodoarquivo | Obrigatório. Qualquer número de arquivo válido. |
position | Obrigatório. Número no intervalo 1 – 2.147.483.647, inclusive, que indica onde a próxima operação de leitura/gravação deve ocorrer. |
Comentários
Números de registro especificados em Obter e Colocar instruções substituem o posicionamento do arquivo executado pelo Seek.
Executar uma operação de gravação de arquivo após uma operação Seek além do final de um arquivo estende o arquivo. Se você tentar uma operação Seek para uma posição negativa ou zero, ocorrerá um erro.
Exemplo
Este exemplo usa a instrução Seek para definir a posição para a próxima leitura ou gravação em um arquivo. Este exemplo pressupõe que TESTFILE
seja um arquivo que contém registros do tipo Record
definido pelo usuário .
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Para arquivos abertos no modo Aleatório, o Seek define o próximo registro.
Dim MyRecord As Record, MaxSize, RecordNumber ' Declare variables.
' Open file in random-file mode.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Get number of records in file.
' The loop reads all records starting from the last.
For RecordNumber = MaxSize To 1 Step - 1
Seek #1, RecordNumber ' Set position.
Get #1, , MyRecord ' Read record.
Next RecordNumber
Close #1 ' Close file.
Para arquivos abertos em modos diferentes do modo Aleatório, o Seek define a posição de byte na qual a próxima operação ocorre. Este exemplo pressupõe que TESTFILE
seja um arquivo que contém algumas linhas de texto.
Dim MaxSize, NextChar, MyChar
Open "TESTFILE" For Input As #1 ' Open file for input.
MaxSize = LOF(1) ' Get size of file in bytes.
' The loop reads all characters starting from the last.
For NextChar = MaxSize To 1 Step -1
Seek #1, NextChar ' Set position.
MyChar = Input(1, #1) ' Read character.
Next NextChar
Close #1 ' Close file.
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.