Función SeekSeek function

Devuelve un Long que especifica la posición de lectura/escritura actual en un archivo abierto mediante la instrucción Open .Returns a Long specifying the current read/write position within a file opened by using the Open statement.

SintaxisSyntax

Buscar (númeroarchivo)Seek(filenumber)

El argumento númeroarchivo requerido es un entero que contiene un número de archivoválido.The required filenumber argument is an Integer containing a valid file number.

ObservacionesRemarks

Seek devuelve un valor entre 1 y 2.147.483.647 (equivalente a 2 ^ 31-1), ambos inclusive.Seek returns a value between 1 and 2,147,483,647 (equivalent to 2^31 - 1), inclusive.

A continuación, se describen los valores devueltos para cada modo de acceso a archivos.The following describes the return values for each file access mode.

ModoMode Valor devueltoReturn value
AleatorioRandom Número del siguiente registro que se ha leído o escrito.Number of the next record read or written.
Binario, salida, anexión, entradaBinary, Output, Append, Input Posición de byte en la que tiene lugar la siguiente operación.Byte position at which the next operation takes place. El primer byte de un archivo está en la posición 1, el segundo en la posición 2, etc.The first byte in a file is at position 1, the second byte is at position 2, and so on.

EjemploExample

En este ejemplo, se usa la función Seek para devolver la posición del archivo actual.This example uses the Seek function to return the current file position. En el ejemplo se TESTFILE supone que es un archivo que contiene registros del tipo Recorddefinido por el usuario.The example assumes that TESTFILE is a file containing records of the user-defined type Record.

Type Record    ' Define user-defined type.
    ID As Integer
    Name As String * 20
End Type

Para archivos abiertos en modo Random, Seek devuelve el número del siguiente registro.For files opened in Random mode, Seek returns the number of the next record.

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.
    Debug.Print Seek(1)    ' Print record number to the Immediate window.
Loop
Close #1    ' Close file.


Para archivos abiertos en modos distintos al modo Random, Seek devuelve la posición de byte en que tiene lugar la siguiente operación.For files opened in modes other than Random mode, Seek returns the byte position at which the next operation takes place. Supongamos que TESTFILE es un archivo que contiene algunas líneas de texto.Assume that TESTFILE is a file containing a few lines of text.

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.
    Debug.Print Seek(1)    ' Print byte position to the Immediate window.
Loop
Close #1    ' Close file.

Vea tambiénSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.