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 Record
definido 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.