Condividi tramite


Funzione Seek

Aggiornamento: novembre 2007

Restituisce un valore Long che specifica la posizione corrente di lettura/scrittura all'interno di un file utilizzando la funzione FileOpen oppure imposta la posizione dell'operazione successiva di lettura/scrittura in un file aperto mediante la stessa funzione FileOpen.

Nelle operazioni di I/O dei file la funzionalità My offre un più elevato livello di produttività e prestazioni rispetto a Seek. Per ulteriori informazioni, vedere Oggetto My.Computer.FileSystem.

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

Parametri

  • FileNumber
    Obbligatorio. Valore Integer contenente un numero di file valido.

  • Position
    Obbligatorio. Numero compreso nell'intervallo tra 1 e 2.147.483.647 inclusi, corrispondente alla posizione in cui deve essere eseguita la successiva operazione di lettura/scrittura.

Eccezioni

Tipo di eccezione

Numero di errore

Condizione

IOException

52

FileNumber non esiste.

IOException

54

Modalità di accesso ai file non valida.

Se si esegue l'aggiornamento delle applicazioni Visual Basic 6.0 che utilizzano la gestione degli errori non strutturata, vedere la colonna "Numero di errore". È possibile confrontare il numero di errore con la Proprietà Number (oggetto Err). Se possibile, tuttavia, si consiglia di sostituire il controllo dell'errore con la procedura illustrata nella sezione Cenni preliminari sulla gestione strutturata delle eccezioni per Visual Basic.

Note

La funzione Seek restituisce un valore compreso tra 1 e 2.147.483.647 (equivalente a 2^31 – 1) inclusi.

Di seguito vengono descritti i valori restituiti per ciascun tipo di modalità di accesso al file:

Modalità

Valore restituito

Random

Numero del successivo record letto o scritto

Binary, Input, Output, Append

Posizione del byte nella quale verrà eseguita l'operazione successiva. Il primo byte di un file corrisponde alla posizione 1, il secondo alla posizione 2 e così via.

Esempio

Nell'esempio riportato di seguito la funzione Seek viene utilizzata per restituire la posizione corrente del file. Nell'esempio TestFile è un file nel quale sono presenti record della struttura Record.

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

In caso di file aperti in modalità Random, Seek restituisce il numero del record successivo.

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)

In caso di file aperti in modalità diverse da Random, Seek restituirà la posizione del byte in cui verrà eseguita l'operazione successiva. Si supponga che TestFile sia un file nel quale sono inserite alcune righe di testo.

' 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)

Nell'esempio riportato di seguito la funzione Seek viene utilizzata per impostare la posizione in cui verrà eseguita la successiva operazione di lettura o scrittura in un file. Nell'esempio People.txt è un file nel quale sono presenti record della struttura Record.

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

Nei file aperti in modalità diverse da Random, Seek consente di impostare la posizione di byte in cui viene eseguita l'operazione successiva. Si supponga che TestFile sia un file nel quale sono inserite alcune righe di testo.

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)

Note per gli sviluppatori di applicazioni per Smart Device

Questa funzione non è supportata.

Requisiti

Spazio dei nomi: Microsoft.VisualBasic

**Modulo:**FileSystem

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Vedere anche

Riferimenti

Funzione FileGet

Funzione Loc

Funzione FileOpen

Funzione FilePut

IOException

Altre risorse

Lettura da file in Visual Basic

Scrittura su file in Visual Basic