FileSystem.FilePut 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 FilePut. F Weitere Informationen finden Sie unter FileSystem.
Überlädt
| Name | Beschreibung |
|---|---|
| FilePut(Int32, Int64, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, String, Int64, Boolean) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Object, Object, Object) |
Veraltet.
Veraltet.
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, ValueType, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Single, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Int32, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Double, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Decimal, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, DateTime, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Char, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Byte, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Boolean, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
| FilePut(Int32, Int16, Int64) |
Schreibt Daten aus einer Variablen in eine Datenträgerdatei. Das |
FilePut(Int32, Int64, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Int64
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, String, Int64, Boolean)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- String
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.
- StringIsFixedLength
- Boolean
Dies ist optional. Gilt nur beim Schreiben einer Zeichenfolge. Gibt an, ob ein Zeichenfolgen-Längendeskriptor für die Zeichenfolge in die Datei geschrieben werden soll. Der Standardwert lautet False.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Object, Object, Object)
Achtung
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Achtung
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parameter
- FileNumber
- Object
Required. Eine beliebige gültige Dateinummer.
- Value
- Object
Required. Gültiger Variablenname, der Daten enthält, die auf den Datenträger geschrieben wurden.
- RecordNumber
- Object
Dies ist optional. Datensatznummer ( Modusdateien) oder Bytenummer (RandomBinaryModusdateien), bei denen das Schreiben beginnt.
- Attribute
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, ValueType, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- ValueType
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Single, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Single
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Int32, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Int32
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Array, Int64, Boolean, Boolean)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Array
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.
- ArrayIsDynamic
- Boolean
Dies ist optional. Gilt nur beim Schreiben eines Arrays. Gibt an, ob das Array als dynamisch behandelt werden soll und ob ein Arraydeskriptor für die Zeichenfolge geschrieben werden soll, die die Länge beschreibt.
- StringIsFixedLength
- Boolean
Dies ist optional. Gilt nur beim Schreiben einer Zeichenfolge. Gibt an, ob ein Zeichenfolgen-Längendeskriptor für die Zeichenfolge in die Datei geschrieben werden soll. Der Standardwert lautet False.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Double, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Double
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Decimal, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Decimal
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, DateTime, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- DateTime
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Char, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Char
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Byte, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Byte
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Boolean, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Boolean
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic
Gilt für:
FilePut(Int32, Int16, Int64)
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 FilePut. Weitere Informationen finden Sie unter FileSystem.
public static void FilePut(int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parameter
- FileNumber
- Int32
Required. Eine beliebige gültige Dateinummer.
- Value
- Int16
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.
Ausnahmen
RecordNumber
< 1 und nicht gleich -1.
Der Dateimodus ist ungültig.
Beispiele
In diesem Beispiel wird die FilePut Funktion verwendet, um Daten in eine Datei zu schreiben. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Hinweise
FilePut ist nur im Random Und Binary Modus gültig.
Mit einer Datei geschriebene FilePut Daten werden in der Regel mithilfe einer FileGetDatei 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 weglassen RecordNumber, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet oder Funktion geschrieben FilePut oder von der letzten Seek Funktion darauf verwiesen.
Das StringIsFixedLength Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert.
FilePut schreibt den Längendeskriptor nicht, wenn das Argument lautet True. Bei Verwendung StringIsFixedLength = True mit FilePut, müssen Sie dasselbe mit FileGet, und Sie müssen 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,FilePutwerden 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 mit sicherheit bestimmt werden kann, empfiehlt es sich in der Regel, die Datensatzlänge 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 eine Zeichenfolge ist, schreibt ein Zwei-Byte-Deskriptor,
FilePutder die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gelangen. Daher muss die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge mindestens zwei Bytes größer sein als die tatsächliche Länge der Zeichenfolge.Wenn die geschriebene Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePutdie dasVarTypeObjekt identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePutwerden 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 einen zwei Bytedeskriptor,
FilePutder 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 die geschriebene Variable ein Array ist, haben Sie die Wahl, ob ein Deskriptor für die Größe und Die Dimensionen des Arrays geschrieben werden soll. Visual Basic 6.0 und früheren Versionen schreiben den Dateideskriptor für ein dynamisches Array, jedoch nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig nicht den Deskriptor. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamicParameter aufTrue. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird; Wenn sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. 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). Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Arraydaten und des Arraydeskriptors erforderlich sind. Die folgende Arraydeklaration erfordert beispielsweise 218 Byte, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As IntegerWenn es sich bei der geschriebenen Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePutwerden nur die Variablendaten geschrieben. Die durch die Klausel in derRecordLengthFileOpenFunktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePutschreibt Elemente von Strukturen so, als ob sie einzeln geschrieben wurden, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedStringAttribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Note
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedStringAttribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden,
Binärmodus
Bei Dateien, die im Binary Modus geöffnet wurden, gelten die Random meisten Modusregeln mit einigen Ausnahmen. Die folgenden Regeln für dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für den Random Modus:
Die
RecordLengthKlausel in derFileOpenFunktion hat keine Auswirkung.FilePutschreibt alle Variablen fortlaufend auf den Datenträger, d. h. ohne Abstand zwischen Datensätzen.Bei einem anderen Array als einem Array in einer Struktur
FilePutwerden nur die Daten geschrieben. Es wird keine Beschreibung geschrieben.FilePutschreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne die Zwei-Byte-Längenbeschreibung sind. Die Anzahl geschriebener Bytes entspricht der Anzahl von Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Das Schreiben in eine Datei mithilfe der
FilePutFunktion erfordertWriteZugriff von der FileIOPermissionAccess Enumeration.
Weitere Informationen
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schreiben in Dateien in Visual Basic