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 Datenträgerdatei. Das My Feature bietet Ihnen eine bessere Produktivität und Leistung in 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
Required. Eine beliebige gültige Dateinummer.
- Value
- Object
Required. Gültiger Variablenname, der Daten enthält, die auf den Datenträger geschrieben wurden.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer ( Modusdateien) oder Bytenummer (RandomBinaryModusdateien), bei denen das Schreiben 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 wird verwendet, anstatt FilePut Mehrdeutigkeiten zur Kompilierungszeit zu vermeiden, wenn der Typ Object anstelle eines anderen Typs übergeben wird, z Integer. B. , Long, Shortusw.
FilePutObject schreibt und liest Deskriptoren, die das Objekt beschreiben. Wenn Sie den Variant Typ schreiben möchten, FilePutObject ist erforderlich. Wenn Sie im Zweifelsfall ein Objekt für den zweiten Parameter verwenden, empfehlen wir, dass Sie immer verwenden FilePutObject und FileGetObject.
FilePutObject ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePutObject Daten werden in der Regel mithilfe einer FileGetObjectDatei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei beginnt an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie auslassen RecordNumber, FilePutObject schreibt der nächste Datensatz oder 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 lautet True. Bei Verwendung StringIsFixedLength = True mit FilePutObject, müssen Sie dasselbe mit FileGetObject, 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 wurden, gelten die folgenden Regeln:
Wenn die Länge der geschriebenen Daten kleiner als die in der
RecordLengthKlausel derFileOpenFunktion angegebene Länge ist,FilePutObjectwerden nachfolgende Datensätze in Datensatzlängenbegrenzungen geschrieben. 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 Abstandsdaten nicht genau bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Länge des Datensatzes mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der geschriebenen Daten größer als die in derRecordLengthKlausel derFileOpenFunktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutObjectdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutObjectwerden sechs Byte geschrieben: zwei Bytes, die das Objekt alsVarType(3)(Integer) und vier Bytes identifizieren, die die Daten enthalten. Die durch denRecordLengthParameter in derFileOpenFunktion angegebene Datensatzlänge muss mindestens zwei Byte größer sein als die tatsächliche Anzahl der Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die geschriebene Variable ein Objekt ist, das eine Zeichenfolge enthält, schreibt ein Zwei-Byte-Deskriptor,
FilePutObjectder dasVarType(8)Objekt identifiziert, ein Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die durch denRecordLengthParameter in derFileOpenFunktion angegebene Datensatzlänge muss mindestens vier Bytes größer sein als die tatsächliche Länge der Zeichenfolge. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie denStringIsFixedLengthParameter übergebenTrue, und die von Ihnen gelesene Zeichenfolge sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, muss die durch die Klausel in der
RecordLengthFileOpenFunktion 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. Die Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions).
Binärmodus
Für Dateien, die Random im Binary Modus geöffnet werden, gelten alle Modusregeln, mit Ausnahme:
- Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutObjectschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.