Seek (Función)

Actualización: noviembre 2007

Devuelve un valor Long que especifica la posición actual de lectura o escritura en un archivo abierto con la función FileOpen o bien establece la posición de la siguiente operación de lectura o escritura en un archivo abierto con la función FileOpen.

La característica My proporciona mayor productividad y rendimiento en las operaciones de E/S del archivo que si se utiliza Seek. Para obtener más información, vea My.Computer.FileSystem (Objeto).

Public Overloads Function Seek( _
   ByVal FileNumber As Integer _
) As Long
' -or-
Public Overloads Sub Seek( _
   ByVal FileNumber As Integer, _
   ByVal Position As Long _
)

Parámetros

  • FileNumber
    Requerido. Integer que contiene un número de archivo válido.

  • Position
    Requerido. Número comprendido entre 1 y 2.147.483.647, ambos inclusive, que indica el lugar en que debería llevarse a cabo la próxima operación de lectura o escritura.

Excepciones

Tipo de excepción

Número de error

Condición

IOException

52

FileNumber no existe.

IOException

54

El modo de archivo no es válido.

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Comentarios

Seek devuelve un valor comprendido entre 1 y 2.147.483.647 (equivalente a 2^31 – 1), ambos inclusive.

En la siguiente tabla se describe el valor devuelto en cada modo de acceso a archivos:

Modo

Valor devuelto

Random

Número del siguiente registro que se lee o escribe.

Binary, Input, Output, Append

Posición de byte en la que se llevará a cabo la siguiente operación. El primer byte de un archivo tiene la posición 1, el segundo byte, la posición 2 y así sucesivamente.

Ejemplo

En este ejemplo se utiliza la función Seek para devolver la posición de archivo actual. Se supone que TestFile es un archivo con registros de la estructura Record.

Structure Record   ' Define user-defined type.
   Dim ID As Integer
   Dim Name As String
End Structure

Con archivos abiertos en modo Random, Seek devuelve el número del siguiente registro.

FileOpen(1, "TESTFILE", OpenMode.Random)
Do While Not EOF(1)   
   WriteLine(1,Seek(1))   ' Write record number.
   FileGet(1, MyRecord, -1)   ' Read next record.
Loop
FileClose(1)

Con archivos abiertos en modos distintos de Random, Seek devuelve la posición de byte en la que se lleva a cabo la siguiente operación. Se supone que TestFile es un archivo con unas pocas líneas de texto.

' Report character position at beginning of each line.
Dim TextLine As String
FileOpen(1, "TESTFILE", OpenMode.Input)   ' Open file for reading.
While Not EOF(1)   
' Read next line.
   TextLine = LineInput(1)
   ' Position of next line.
   MsgBox(Seek(1))
End While
FileClose(1)

En este ejemplo se utiliza la función Seek para establecer la posición de la siguiente operación de lectura o escritura que se producirá en un archivo. Se supone que People.txt es un archivo con registros de la estructura Record.

Structure TestRecord
   Dim Name As String
   Dim ID As Integer
End Structure

Con archivos abiertos en modos distintos de Random, Seek establece la posición de byte en la que se lleva a cabo la siguiente operación. Se supone que TestFile es un archivo con unas pocas líneas de texto.

Dim someText As String = "This is a test string."
' Open file for output.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Move to the third character.
Seek(1, 3)
Input(1, someText)
Console.WriteLine(someText)
FileClose(1)

Notas para desarrolladores de dispositivos inteligentes

Esta función no es compatible.

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**FileSystem

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

FileGet (Función)

Loc (Función)

FileOpen (Función)

FilePut (Función)

IOException

Otros recursos

Leer archivos en Visual Basic

Escribir en archivos en Visual Basic