Observação
A função, método, objeto ou propriedade descrita neste tópico está desativada se o Serviço Microsoft Jet Expression estiver em execução no modo sandbox, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, procure "modo sandbox" na Ajuda.
Devolve um Valor Longo especificando a posição de leitura/escrita atual num ficheiro aberto com a instrução Abrir .
Sintaxe
Seek(filenumber)
O argumento filenumbernecessário é um Número Inteiro que contém um número de ficheiro válido.
Comentários
Procurar devolve um valor entre 1 e 2.147.483.647 (equivalente a 2^31 – 1), inclusive.
O seguinte descreve os valores devolvidos para cada modo de acesso a ficheiros.
| Modo | Valor de retorno |
|---|---|
| Aleatório | Número do registo seguinte lido ou escrito |
|
Binário, Saída, Acrescentar, Entrada |
Posição de byte na qual a próxima operação ocorre. O primeiro byte num ficheiro está na posição 1, o segundo byte está na posição 2 e assim sucessivamente. |
Exemplo
Observação
Exemplos que se seguem demonstram a utilização desta função num módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Programador na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
Este exemplo utiliza a função Seek para devolver a posição atual do ficheiro. O exemplo pressupõe que TESTFILE é um ficheiro que contém registos do tipo Recorddefinido pelo utilizador .
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Para ficheiros abertos no modo Aleatório, Procurar devolve o número do registo seguinte.
Dim MyRecord As Record ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
Do While Not EOF(1) ' Loop until end of file.
Get #1, , MyRecord ' Read next record.
' Print record number to the Immediate window.
Debug.Print Seek(1)
Loop
Close #1 ' Close file.
Para ficheiros abertos em modos diferentes do modo Aleatório, Procurar devolve a posição de byte na qual a operação seguinte ocorre. Suponha que TESTFILE é um ficheiro que contém algumas linhas de texto.
Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file for reading.
Do While Not EOF(1) ' Loop until end of file.
MyChar = Input(1, #1) ' Read next character of data.
' Print byte position to the Immediate window.
Debug.Print Seek(1)
Loop
Close #1 ' Close file.