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 Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut
. Weitere Informationen finden Sie unter FileSystem.
Überlädt
FilePut(Int32, Int64, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, String, Int64, Boolean) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Object, Object, Object) |
Veraltet.
Veraltet.
Veraltet.
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, ValueType, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Single, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Int32, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Array, Int64, Boolean, Boolean) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Double, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Decimal, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, DateTime, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Char, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Byte, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Boolean, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Int16, Int64) |
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das |
FilePut(Int32, Int64, Int64)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Int64
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- String
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
- StringIsFixedLength
- Boolean
Dies ist optional. Betrifft nur das Schreiben einer Zeichenfolge. Gibt an, ob ein 2-Byte-Zeichenfolgenlängendeskriptor in die Datei für die Zeichenfolge geschrieben werden soll. Der Standardwert ist False
.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
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
Achtung
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Achtung
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut
. Weitere Informationen finden Sie unter FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[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);
[System.Obsolete("FileSystem.FilePut has been deprecated. 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);
[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("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
[<System.Obsolete("FileSystem.FilePut has been deprecated. 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("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
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parameter
- FileNumber
- Object
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Object
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Object
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
- Attribute
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- ValueType
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Single
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Int32
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Array
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
- ArrayIsDynamic
- Boolean
Dies ist optional. Betrifft nur das Schreiben eines Arrays. Gibt an, ob das Array als dynamisches Array behandelt werden soll und ein Arraydeskriptor für die Zeichenfolge erforderlich ist, der die Länge beschreibt.
- StringIsFixedLength
- Boolean
Dies ist optional. Betrifft nur das Schreiben einer Zeichenfolge. Gibt an, ob ein 2-Byte-Zeichenfolgenlängendeskriptor in die Datei für die Zeichenfolge geschrieben werden soll. Der Standardwert ist False
.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Schreibt für jedes Array außer einem Array in einer Struktur
FilePut
nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen ohne den Zweibyte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mit der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess -Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Double
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassenRecordNumber
, wird der nächste Datensatz oder das nächste Byte nach dem letzten oder FilePut
der letzten FileGet
Funktion geschrieben 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 ist True
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dies auch mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der
RecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist,FilePut
schreibt nachfolgende Datensätze auf Datensatzlängengrenzen. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Dateipuffers aufgefüllt. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt einen Zweibytedeskriptor, der die Länge der Zeichenfolge enthält, und schreibt dann die Daten, die in die Variable eingehen. Daher muss die von der -Klausel in derRecordLength
FileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der denVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Schreibt für jedes Array außer einem Array in einer Struktur
FilePut
nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen ohne den Zweibyte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mit der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess -Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Decimal
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassenRecordNumber
, wird der nächste Datensatz oder das nächste Byte nach dem letzten oder FilePut
der letzten FileGet
Funktion geschrieben 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 ist True
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dies auch mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der
RecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist,FilePut
schreibt nachfolgende Datensätze auf Datensatzlängengrenzen. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Dateipuffers aufgefüllt. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt einen Zweibytedeskriptor, der die Länge der Zeichenfolge enthält, und schreibt dann die Daten, die in die Variable eingehen. Daher muss die von der -Klausel in derRecordLength
FileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der denVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Schreibt für jedes Array außer einem Array in einer Struktur
FilePut
nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen ohne den Zweibyte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mit der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess -Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- DateTime
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassenRecordNumber
, wird der nächste Datensatz oder das nächste Byte nach dem letzten oder FilePut
der letzten FileGet
Funktion geschrieben 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 ist True
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dies auch mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der
RecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist,FilePut
schreibt nachfolgende Datensätze auf Datensatzlängengrenzen. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Dateipuffers aufgefüllt. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt einen Zweibytedeskriptor, der die Länge der Zeichenfolge enthält, und schreibt dann die Daten, die in die Variable eingehen. Daher muss die von der -Klausel in derRecordLength
FileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der denVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Char
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Byte
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der denVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Schreibt für jedes Array außer einem Array in einer Struktur
FilePut
nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen ohne den Zweibyte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mit der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess -Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Boolean
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassenRecordNumber
, wird der nächste Datensatz oder das nächste Byte nach dem letzten oder FilePut
der letzten FileGet
Funktion geschrieben 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 ist True
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dies auch mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der
RecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist,FilePut
schreibt nachfolgende Datensätze auf Datensatzlängengrenzen. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Dateipuffers aufgefüllt. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt einen Zweibytedeskriptor, der die Länge der Zeichenfolge enthält, und schreibt dann die Daten, die in die Variable eingehen. Daher muss die von der -Klausel in derRecordLength
FileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der denVarType(8)
des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie lesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variablen um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt den Deskriptor standardmäßig nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. Wenn es 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. Seine Länge entspricht 2 plus dem 8-fachen der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die von derRecordLength
-Klausel in derFileOpen
Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn die zu schreibende Variable ein anderer Typ von Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
schreibt nur die Variablendaten. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als ob jedes einzeln geschrieben würde, außer es gibt keinen Abstand zwischen Elementen. DasVBFixedString
-Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärer Modus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Schreibt für jedes Array außer einem Array in einer Struktur
FilePut
nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen ohne den Zweibyte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Byte in die Dateinummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mit der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess -Enumeration erforderlichWrite
.
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)
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
- Quelle:
- FileSystem.vb
Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger. Das My
-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als 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
Erforderlich. Eine beliebige gültige Dateinummer.
- Value
- Int16
Erforderlich. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.
- RecordNumber
- Int64
Dies ist optional. Datensatznummer (Dateien im Random
-Modus) oder Bytenummer (Dateien im Binary
-Modus), an der der Schreibvorgang beginnt.
Ausnahmen
RecordNumber
< 1 und ungleich –1.
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 FilePut
geschriebene Daten werden in der Regel mit FileGet
aus einer Datei gelesen.
Der erste Datensatz oder das erste Byte in einer Datei befindet sich an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw. Wenn Sie weglassen RecordNumber
, wird der nächste Datensatz oder das nächste Byte nach der letzten FileGet
Funktion oder FilePut
Funktion geschrieben oder von der letzten Seek
Funktion auf 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
. Wenn Sie mit FilePut
verwendenTrue
StringIsFixedLength
= , müssen Sie dasselbe mit FileGet
tun, 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 werden, gelten die folgenden Regeln:
Wenn die Länge der zu schreibenden Daten kleiner als die in der -Klausel der
RecordLength
FileOpen
-Funktion angegebene Länge ist,FilePut
werden nachfolgende Datensätze auf Datensatzlängengrenzen geschrieben. Der Leerraum zwischen dem Ende eines Datensatzes und dem Beginn des nächsten Datensatzes ist mit dem vorhandenen Inhalt des Dateipuffers gepolstert. Da die Menge der Auffüllungsdaten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Datensatzlänge mit der Länge der zu schreibenden Daten übereinzustimmen. Wenn die Länge der zu schreibenden Daten größer als die in derRecordLength
-Klausel derFileOpen
-Funktion angegebene Länge ist, wird eine Ausnahme ausgelöst.Wenn die zu schreibende Variable eine Zeichenfolge ist,
FilePut
schreibt ein Zwei-Byte-Deskriptor, der die Zeichenfolgenlänge enthält, und schreibt dann die Daten, die in die Variable gehen. Daher muss die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.Wenn die zu schreibende Variable ein Objekt ist, das einen numerischen Typ enthält, schreibt zwei Bytes,
FilePut
die dasVarType
des -Objekts identifizieren, und schreibt dann die Variable. Wenn Sie beispielsweise ein Objekt schreiben, das eine ganze Zahl enthält,FilePut
werden sechs Bytes geschrieben: zwei Bytes, die das Objekt alsVarType(3)
(Integer
) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens zwei Bytes größer sein als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.Wenn die zu schreibende Variable ein Objekt ist, das eine Zeichenfolge enthält,
FilePut
schreibt einen Zwei-Byte-Deskriptor, der dasVarType(8)
objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in derRecordLength
FileOpen
Funktion angegebene Datensatzlänge muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne den Deskriptor einfügen möchten, sollten Sie an den Parameter übergebenTrue
, und die Zeichenfolge, in dieStringIsFixedLength
Sie einlesen, sollte die richtige Länge aufweisen.Wenn es sich bei der zu schreibenden Variable um ein Array handelt, haben Sie die Wahl, ob sie einen Deskriptor für die Größe und die Dimensionen des Arrays schreiben möchten oder nicht. Visual Basic 6.0 und frühere Versionen schreiben den Dateideskriptor für ein dynamisches Array, aber nicht für ein Array mit fester Größe. Visual Basic 2005 schreibt standardmäßig den Deskriptor nicht. Um den Deskriptor zu schreiben, legen Sie den
ArrayIsDynamic
Parameter auf festTrue
. Beim Schreiben des Arrays müssen Sie mit der Art und Weise übereinstimmen, wie das Array gelesen wird. wenn es mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze für jeden Rang an. Seine Länge entspricht 2 plus 8 Mal der Anzahl der Dimensionen: (2 + 8 * NumberOfDimensions). Die durch dieRecordLength
-Klausel in derFileOpen
-Funktion 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 Bytes, wenn das Array auf den Datenträger geschrieben wird.Dim MyArray(4, 9) As Integer
Wenn es sich bei der zu schreibenden Variable um einen anderen Variablentyp handelt (keine Zeichenfolge mit variabler Länge oder ein Objekt),
FilePut
werden nur die Variablendaten geschrieben. Die von derRecordLength
-Klausel in derFileOpen
-Funktion angegebene Datensatzlänge muss größer oder gleich der Länge der zu schreibenden Daten sein.FilePut
schreibt Elemente von Strukturen so, als würden sie einzeln geschrieben, es sei denn, es gibt keine Auffüllung zwischen Elementen. DasVBFixedString
Attribut kann auf Zeichenfolgenfelder in den Strukturen angewendet werden, um die Größe der Zeichenfolge anzugeben, wenn sie auf den Datenträger geschrieben wird.Hinweis
Zeichenfolgenfelder, die mehr Bytes als durch das
VBFixedString
Attribut angegeben haben, werden abgeschnitten, wenn sie auf den Datenträger geschrieben werden.
Binärmodus
Für Dateien, die im Binary
Modus geöffnet werden, 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 Random
den Modus:
Die
RecordLength
-Klausel in derFileOpen
-Funktion hat keine Auswirkung.FilePut
schreibt alle Variablen zusammenhängend auf den Datenträger, d. h. ohne Zwischenspeicherung zwischen Datensätzen.Für jedes andere Array als ein Array in einer Struktur
FilePut
schreibt nur die Daten. Es wird kein Deskriptor geschrieben.FilePut
schreibt Zeichenfolgen mit variabler Länge, die keine Elemente von Strukturen ohne den Zwei-Byte-Längendeskriptor sind. Die Anzahl der geschriebenen Bytes entspricht der Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben beispielsweise 11 Bytes in die Datei Nummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Für das Schreiben in eine Datei mithilfe der
FilePut
-Funktion ist der Zugriff von der FileIOPermissionAccess Enumeration erforderlichWrite
.
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