Observação: A função, método, objeto ou propriedade descrita neste tópico será desabilitada se o Serviço de Expressão de Jato da Microsoft estiver em execução no modo de área restrita, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo de área restrita, procure por "modo de área restrita" na Ajuda.
Retorna um Long especificando a posição atual de leitura/gravação em um arquivo aberto usando a instrução Open .
Sintaxe
Seek( filenumber )
O número de arquivos necessárioargumento é um Inteiro que contém um número do arquivo válido .
Comentários
O Seek retorna um valor entre 1 e 2.147.483.647 (equivalente a 2^31 – 1), inclusivo.
A seguir, descreve os valores retornados para cada modo de acesso de arquivo.
Modo |
Valor de retorno |
Aleatório |
Número do próximo registro lido ou escrito |
Binary,Output,Append,Input |
Posição byte na qual a próxima operação ocorre. O primeiro byte em um arquivo está na posição 1, o segundo byte está na posição 2 e assim por diante. |
Exemplo
Observação: Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.
Este exemplo usa a função Seek para retornar a posição do arquivo atual. O exemplo pressupõe TESTFILE é um arquivo que contém registros do tipo definido pelo usuário Record.
Type Record ' Define user-defined type.
ID As Integer Name As String * 20 End Type
Para arquivos abertos no modo Aleatório, o Seek retorna o número do próximo registro.
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 arquivos abertos em modos diferentes do modo Aleatório, o Seek retorna a posição de byte na qual a próxima operação ocorre. Suponha que TESTFILE seja um arquivo 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.