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, Shortusw.
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 FileGetObjectzu 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 FilePutObjectverwendenTrueStringIsFixedLength = , müssen Sie dies auch mit FileGetObjecttun, 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,FilePutObjectschreibt 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,
FilePutObjectdie dasVarTypedes Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutObjectwerden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)(Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLengthFileOpenFunktion 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,
FilePutObjectschreibt 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 derRecordLengthFileOpenFunktion 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 dieStringIsFixedLengthSie lesen, sollte die richtige Länge aufweisen.Wenn die zu schreibende Variable ein Array ist, muss die von der
RecordLength-Klausel in derFileOpenFunktion 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 derFileOpenFunktion hat keine Auswirkung.FilePutObjectschreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.