Metodo FileSystem.FileGet (Int32, Single, Int64)

 

Data di pubblicazione: ottobre 2016

Legge i dati da un file aperto su disco in una variabile. Il My nelle funzionalità garantisce produttività e prestazioni migliori rispetto alle operazioni dei / o file FileGet. Per altre informazioni, vedere FileSystem.

Spazio dei nomi:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public static void FileGet(
	int FileNumber,
	ref float Value,
	long RecordNumber = -1
)

Parametri

FileNumber
Type: System.Int32

Obbligatorio. Qualsiasi numero di file valido.

Value
Type: System.Single

Obbligatorio. Nome di variabile valido in cui i dati vengono letti.

RecordNumber
Type: System.Int64

Facoltativo. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) nella quale inizia la lettura.

Exception Condition
ArgumentException

RecordNumber < 1 e non è uguale a -1.

IOException

FileNumber non esiste.

IOException

Modalità file non è valida.

FileGet è valido solo in Random e Binary modalità.

I dati letti con FileGet vengono generalmente scritti in un file utilizzando FilePut.

È il primo record o byte in un file nella posizione 1, il secondo record o byte corrisponde alla posizione 2 e così via. Se si omette RecordNumber, il record o dopo l'ultimo byte FileGet o FilePut funzione (o a cui fa riferimento l'ultima Seek funzione) è di lettura.

System_CAPS_security Sicurezza Nota

Durante la lettura da file, non prendere decisioni sul contenuto di un file in base all'estensione del file. Ad esempio, un file denominato Form1. vb non sia un file di origine Visual Basic.

Per i file aperti Random modalità, le seguenti regole:

  • Se la lunghezza dei dati letti è minore della lunghezza specificata nel RecordLength clausola del FileOpen funzione FileGet legge i record successivi nei limiti di lunghezza di record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di spaziatura interna non è possibile determinare con precisione, in genere è una buona idea che la lunghezza del record corrisponde alla lunghezza dei dati da leggere.

  • Per impostazione predefinita, se la variabile in lettura è una stringa, FileGet legge un descrittore a due byte che contiene la lunghezza della stringa e quindi legge i dati nella variabile. Di conseguenza, la lunghezza del record specificata dal RecordLength della clausola il FileOpen funzione deve essere maggiore della lunghezza effettiva della stringa di almeno due byte. Visual Basic 6.0 e versioni precedenti supportano stringhe di lunghezza fissa. Quando vengono inserite in un file, il descrittore di lunghezza non viene scritta. Se si desidera leggere una stringa senza il descrittore, è necessario passare True per il StringIsFixedLength parametro e la stringa letta deve avere la lunghezza corretta.

  • Se la variabile in lettura è una matrice, è possibile scegliere se leggere un descrittore per le dimensioni della matrice. Per scrivere il descrittore, impostare il ArrayIsDynamic parametro True. Durante la lettura della matrice, è necessario cercare il modo in cui che è stata scritta la matrice. Se è stato scritto con il descrittore, è necessario leggere il descrittore. Se non viene utilizzato il descrittore, le dimensioni e i limiti della matrice passato nel FileGet stabilire cosa leggere.

    Il descrittore specifica il numero di dimensioni della matrice, le dimensioni e i limiti inferiori di ogni indice. La lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata da di RecordLength parametro il FileOpen funzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati e il descrittore della matrice. Ad esempio, la seguente dichiarazione richiede 218 byte quando la matrice viene scritta su disco.

    Dim MyArray(4, 9) As Integer
    

    218 byte sono distribuiti come segue:

    • 18 byte per il descrittore di: (2 + 8 * 2)

    • 200 byte per i dati: (5 * 10 * 4).

  • Se la variabile in lettura è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto), FileGet legge solo i dati della variabile. La lunghezza del record specificata da di RecordLength clausola il FileOpen funzione deve essere maggiore o uguale alla lunghezza dei dati da leggere.

  • FileGet legge gli elementi delle strutture come se fossero letti individualmente, ad eccezione del fatto che non vi sia alcun riempimento tra gli elementi. Sul disco, una matrice dinamica di un tipo definito dall'utente (scritto con FilePut) viene aggiunto come prefisso un descrittore di lunghezza uguale a 2 + 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata da di RecordLength clausola il FileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per la lettura dei singoli elementi. Ciò include le matrici e i relativi descrittori. Il VBFixedString attributo può essere applicato ai campi stringa nelle strutture per indicare la dimensione di una stringa quando viene scritta su disco.

Per i file aperti Binary la maggior parte delle modalità di Random modalità regole si applicano, con alcune eccezioni. Le seguenti regole per i file aperti in Binary modalità differiscono dalle regole per Random modalità:

  • Il RecordLength clausola il FileOpen funzione non ha alcun effetto.FileGet legge tutte le variabili dal disco in modo contiguo; vale a dire senza spaziatura tra i record.

  • Per qualsiasi matrice diversa da una matrice in una struttura FileGet legge solo i dati. Viene letto alcun descrittore.

  • FileGet legge le stringhe a lunghezza variabile che non sono elementi di strutture senza attendere il descrittore di lunghezza a due byte. Il numero di byte letti è uguale al numero di caratteri già presenti nella stringa.

    System_CAPS_security Sicurezza Nota

    La lettura da un file utilizzando il FileGet funzione richiede Read tramite il FileIOPermissionAccess enumerazione.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: