Compartir a través de


Instrucción Seek

Establece la posición de la siguiente operación de lectura y escritura dentro de un archivo abierto mediante la instrucción Open .

Sintaxis

Seek [ # ] filenumber, position

La sintaxis de la instrucción Seek tiene estas partes:

Parte Descripción
númeroArchivo Obligatorio. Cualquier número de archivo válido.
position Obligatorio. Número del rango 1 – 2,147,483,647, incluidos, que indica dónde debe producirse la siguiente operación de lectura/escritura.

Comentarios

Los números de registro especificados en las instrucciones Get y Put invalidan el posicionamiento de archivos realizado por 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. Si intenta una operación Seek en una posición negativa o cero, se produce un error.

Ejemplo:

Este ejemplo usa la instrucción Seek para establecer la posición para la siguiente lectura o escritura dentro de un archivo. En este ejemplo se supone que es un archivo que TESTFILE contiene registros del tipo Recorddefinido por el usuario .

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.

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. En este ejemplo se supone que es un archivo que TESTFILE contiene algunas líneas de texto.

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én

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? 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.