Nota: La funzione, il metodo, la proprietà o l'oggetto descritto in questo argomento è disabilitato se Microsoft Jet Expression Service è in esecuzione in modalità sandbox, che impedisce la valutazione delle espressioni potenzialmente pericolose. Per altre informazioni sulla modalità sandbox, cercare "modalità sandbox" nella Guida.
Restituisce un valore Long che specifica la posizione di lettura/scrittura corrente all'interno di un file aperto con l'istruzione Open .
Sintassi
Seek( filenumber )
Il numero file obbligatorioargomento è un valore Integer contenente un numero di file valido.
Osservazioni
Ricerca 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 ogni modalità di accesso ai file.
Modalità |
Valore restituito |
Random |
Numero del record successivo letto o scritto |
Binario,Output,Accoda,Input |
Posizione del byte in cui viene eseguita l'operazione successiva. Il primo byte in un file si trova nella posizione 1, il secondo byte nella posizione 2 e così via. |
Esempio
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
Questo esempio usa la funzione Seek per restituire la posizione corrente del file. Nell'esempio si presuppone TESTFILE sia un file contenente record del tipo definito dall'utente Record.
Type Record ' Define user-defined type.
ID As Integer Name As String * 20 End Type
Per i file aperti in modalità Casuale, Seek restituisce il numero di record successivo.
Dim MyRecord As Record ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) Do While Not EOF(1) ' Loop until end of file. Get #1, , MyRecord ' Read next record. ' Print record number to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.
Per i file aperti in modalità diversa da Casuale, Seek restituisce la posizione del byte in corrispondenza della quale viene eseguita l'operazione successiva. Si supponga TESTFILE sia un file contenente alcune righe di testo.
Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file for reading. Do While Not EOF(1) ' Loop until end of file. MyChar = Input(1, #1) ' Read next character of data. ' Print byte position to the Immediate window. Debug.Print Seek(1) Loop Close #1 ' Close file.