FileSystem.FilePutObject(Int32, Object, Int64) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePutObject
. Weitere Informationen finden Sie unter 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)
Parameter
- FileNumber
- Int32
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Object
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Beispiele
In diesem Beispiel wird die FilePutObject
-Funktion verwendet, um eine Zeichenfolge in eine Datei zu schreiben.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Hinweise
Die FilePutObject
Funktion dient anstelle von FilePut
um Mehrdeutigkeiten zum Zeitpunkt der Kompilierung zu vermeiden, wenn Typ Object
wird z. B. anstelle eines anderen Typs übergeben Integer
, Long
, Short
usw.
FilePutObject
schreibt und liest Deskriptoren, die das Objekt beschreiben. Wenn Sie beabsichtigen, den Variant
Typ auszuschreiben, FilePutObject
ist erforderlich. Wenn Sie im Zweifelsfall ein -Objekt für den zweiten Parameter verwenden, wird empfohlen, immer und FileGetObject
zu verwendenFilePutObject
.
FilePutObject
ist nur im Random
- und Binary
-Modus gültig.
Mit FilePutObject
geschriebene Daten werden in der Regel mit FileGetObject
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, FilePutObject
schreibt der nächste Datensatz oder das nächste Byte nach der letzten FileGetObject
- oder FilePutObject
-Funktion (oder dem Datensatz oder Byte, auf den die letzte Seek
Funktion verweist).
Das StringIsFixedLength
Argument steuert, ob die Funktion Zeichenfolgen als variable oder feste Länge interpretiert. FilePutObject
schreibt den Längendeskriptor nicht, wenn das Argument ist True
. Wenn Sie mit FilePutObject
verwendenTrue
StringIsFixedLength
= , müssen Sie dies auch mit FileGetObject
tun, und Sie müssen auch sicherstellen, dass die Zeichenfolge auf die erwartete Länge initialisiert wird.
Zufälliger Modus
Für Dateien, die im Random
Modus geöffnet werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der
RecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist,FilePutObject
schreibt nachfolgende Datensätze auf Datensatzlängengrenzen. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Dateipuffers aufgefüllt. Da die Menge der Auffüllungsdaten nicht genau bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutObject
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutObject
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePutObject
schreibt einen Zwei-Byte-Deskriptor, der dieVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn die zu schreibende Variable ein Array ist, muss die von der
RecordLength
-Klausel in derFileOpen
Funktion angegebene Datensatzlänge größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions).
Binärer Modus
Für Dateien, die Random
im Binary
Modus geöffnet werden, gelten alle Modusregeln, außer:
- Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePutObject
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.