Instrucción SeekSeek statement

Establece la posición de la siguiente operación de lectura/escritura dentro de un archivo abierto mediante la instrucción Open .Sets the position for the next read/write operation within a file opened by using the Open statement.

SintaxisSyntax

Buscar [ # ] númeroarchivo, posiciónSeek [ # ] filenumber, position


La sintaxis de la instrucción Seek tiene estas partes:The Seek statement syntax has these parts:

PartPart DescripciónDescription
númeroArchivofilenumber Obligatorio.Required. Cualquier número de archivo válido.Any valid file number.
positionposition Necesario.Required. Número en el intervalo de – 1 2.147.483.647, ambos inclusive, que indica dónde debe producirse la siguiente operación de lectura/escritura.Number in the range 1 – 2,147,483,647, inclusive, that indicates where the next read/write operation should occur.

ObservacionesRemarks

Los números de registro especificados en las instrucciones Get y Put reemplazan la posición de archivo que Seekrealiza.Record numbers specified in Get and Put statements override file positioning performed by Seek.

La realización de una operación de escritura de archivos tras una operación Seek más allá del final de un archivo extiende el archivo.Performing a file-write operation after a Seek operation beyond the end of a file extends the file. Si intenta una operación Seek en una posición negativa o cero, se produce un error.If you attempt a Seek operation to a negative or zero position, an error occurs.

EjemploExample

Este ejemplo usa la instrucción Seek para establecer la posición para la siguiente lectura o escritura dentro de un archivo.This example uses the Seek statement to set the position for the next read or write within a file. En este ejemplo se TESTFILE supone que es un archivo que contiene registros del tipo Recorddefinido por el usuario.This 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 los archivos abiertos en el modo aleatorio, Seek establece el siguiente registro.For files opened in Random mode, Seek sets the next record.

Dim MyRecord As Record, MaxSize, RecordNumber ' Declare variables. 
' Open file in random-file mode. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
MaxSize = LOF(1) \ Len(MyRecord) ' Get number of records in file. 
' The loop reads all records starting from the last. 
For RecordNumber = MaxSize To 1 Step - 1 
 Seek #1, RecordNumber ' Set position. 
 Get #1, , MyRecord ' Read record. 
Next RecordNumber 
Close #1 ' Close file. 


Para los archivos en modos distintos al modo aleatorio, Seek establece la posición de byte en la que tiene lugar la siguiente operación.For files opened in modes other than Random mode, Seek sets the byte position at which the next operation takes place. En este ejemplo se TESTFILE supone que es un archivo que contiene algunas líneas de texto.This example assumes that TESTFILE is a file containing a few lines of text.

Dim MaxSize, NextChar, MyChar 
Open "TESTFILE" For Input As #1 ' Open file for input. 
MaxSize = LOF(1) ' Get size of file in bytes. 
' The loop reads all characters starting from the last. 
For NextChar = MaxSize To 1 Step -1 
 Seek #1, NextChar ' Set position. 
 MyChar = Input(1, #1) ' Read character. 
Next NextChar 
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.