FileSystem.FilePutObject(Int32, Object, Int64) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Scrive dati da una variabile in un file del disco. La funzionalità My
offre un livello più elevato di produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePutObject
. Per altre informazioni, vedere FileSystem.
public static void FilePutObject (int FileNumber, object Value, long RecordNumber = -1);
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Obbligatorio. Qualsiasi numero di file valido.
- Value
- Object
Obbligatorio. Nome di variabile valido che contiene i dati scritti su disco.
- RecordNumber
- Int64
facoltativo. Numero di record (file in modalità Random
) o numero di byte (file in modalità Binary
) in corrispondenza del quale inizia la scrittura.
Esempio
In questo esempio viene usata la FilePutObject
funzione per scrivere una stringa in un file.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Commenti
La FilePutObject
funzione viene usata invece di per evitare ambiguità in fase di FilePut
compilazione se il tipo Object
viene passato invece di un altro tipo, ad esempio Integer
, Long
, Short
e così via.
FilePutObject
scrive e legge i descrittori che descrivono l'oggetto. Se si intende scrivere il Variant
tipo, FilePutObject
è obbligatorio. In caso di dubbi, se si usa un oggetto per il secondo parametro, è consigliabile usare FilePutObject
sempre e FileGetObject
.
FilePutObject
è valido solo in Random
modalità e Binary
.
I dati scritti con FilePutObject
vengono in genere letti da un file usando FileGetObject
.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber
, FilePutObject
scrive il record o il byte successivo dopo l'ultima FileGetObject
funzione o FilePutObject
il record o il byte a cui punta l'ultima Seek
funzione.
L'argomento StringIsFixedLength
controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa. FilePutObject
non scrive il descrittore di lunghezza quando l'argomento è True
. Se si usa StringIsFixedLength
= True
con FilePutObject
, è necessario eseguire la stessa operazione con FileGetObject
e assicurarsi anche che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random
modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLength
clausola dellaFileOpen
funzione,FilePutObject
scrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer del file. Poiché non è possibile determinare con precisione la quantità di dati di spaziatura interna, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLength
clausola dellaFileOpen
funzione, viene generata un'eccezione.Se la variabile scritta è un oggetto che contiene un tipo numerico,
FilePutObject
scrive due byte che identificano l'oggettoVarType
dell'oggetto e quindi scrive la variabile. Ad esempio, durante la scrittura di un oggetto contenente un numero intero,FilePutObject
scrive sei byte: due byte che identificano l'oggetto comeVarType(3)
(Integer
) e quattro byte che contengono i dati. La lunghezza delRecordLength
record specificata dal parametro nellaFileOpen
funzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutObject
scrive un descrittore a due byte che identifica l'oggettoVarType(8)
dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLength
parametro nellaFileOpen
funzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTrue
alStringIsFixedLength
parametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è necessario che la lunghezza del record specificata dalla clausola
RecordLength
della funzioneFileOpen
sia superiore o uguale alla somma di tutti i byte necessari per scrivere i dati e il descrittore della matrice. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions).
Modalità binaria
Per i file aperti in Binary
modalità, si applicano tutte le regole della Random
modalità, ad eccezione di:
- La
RecordLength
clausola nellaFileOpen
funzione non ha alcun effetto.FilePutObject
scrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.