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 |
---|---|---|
FileNumber non esiste. |
||
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)