Nota
A função, método, objeto ou propriedade descrita neste tópico será 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 não seguras. Para obter mais informações sobre o modo sandbox, pesquise "modo sandbox" na Ajuda.
Devolve um Long especificando a posição atual de leitura/escrita num ficheiro aberto com a instrução Open .
Sintaxe
Procurar(número de ficheiro)
O argumento de número de ficheironecessário é um número inteiro que contém um número de ficheiro válido.
Observações
Procurar devolve um valor entre 1 e 2.147.483.647 (equivalente a 2^31 – 1), inclusive.
Seguem-se descrições dos valores devolvidos para cada modo de acesso a ficheiros.
| Modo | Valor Devolvido |
|---|---|
| Aleatório | Número do registo seguinte lido ou escrito |
|
Binário, Saída, Anexar, Entrada |
Posição do byte na qual ocorre a próxima operação. O primeiro byte num ficheiro está na posição 1, o segundo byte está na posição 2 e assim sucessivamente. |
Exemplo
Nota
Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
Este exemplo usa a função Seek para retornar a posição atual do arquivo. O exemplo pressupõe TESTFILE ser um arquivo contendo registros do tipo Recorddefinido pelo usuário.
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Para ficheiros abertos no modo aleatório, Seek 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 noutros modos que não o modo aleatório, Seek devolve a posição de byte na qual a operação seguinte ocorre. Suponha TESTFILE que é um arquivo contendo 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.