Devolve um valor Longo (tipo de dados longo: tipo de dados fundamental que contém números inteiros grandes. Uma variável do tipo Longo é armazenada como um número de 32 bits que varia entre -2.147.483.648 e 2.147.483.647.) que especifica a posição de leitura/escrita actual num ficheiro aberto utilizando a instrução Abrir.
Sintaxe
Seek(númeroficheiro)
O argumento (argumento: valor que fornece informações a uma acção, evento, método, propriedade, função ou procedimento.) númeroficheiro consiste num Número Inteiro (tipo de dados Número inteiro: tipo de dados fundamental que contém números inteiros. Uma variável Número inteiro é armazenada como um número de 16 bits (2-bytes) que varia entre -32.768 e 32.767.) que contenha um número de ficheiro (número de ficheiro: número utilizado na instrução Open para abrir um ficheiro. Utilize números de ficheiro no intervalo 1 - 255, inclusive, para ficheiros não acessíveis para outras aplicações. Utilize números de ficheiro no intervalo 256 - 511 para ficheiros acessíveis a partir de outras aplicações.) válido.
Observações
Seek devolve um valor entre 1 e 2.147.483.647 (equivalente a 2^31 – 1), inclusive.
O que se segue descreve os valores devolvidos para cada modo de acesso ao ficheiro.
| Modo |
Valor Devolvido |
| Aleatório |
Número do registo seguinte lido ou escrito |
Binário, Saída, Acrescentar, Entrada |
Posição do byte na qual é executada a operação seguinte. O primeiro byte num ficheiro encontra-se na posição 1, o segundo byte na posição 2, e assim sucessivamente. |
Exemplo
Nota Os exemplos que se seguem demonstram a utilização desta função num módulo do Visual Basic for Applications (VBA). Para mais informações sobre como trabalhar com VBA, seleccione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de procura.
Este exemplo utiliza a função Seek para devolver a posição do ficheiro actual. O exemplo assume que TESTFILE é um ficheiro que contém registos do Record de tipo definido pelo utilizador.
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Para os ficheiros abertos no modo Aleatório, a função 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 os ficheiros abertos em modos diferentes do modo Aleatório, a função Seek devolve a posição do byte na qual é executada a operação seguinte. Parta do princípio que TESTFILE é um ficheiro que contém poucas 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.