Freigeben über


FileSystem.FilePut Methode

Definition

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 My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut. Weitere Informationen finden Sie unter FileSystem.

FilePut(Int32, String, Int64, Boolean)

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.

FilePut(Object, Object, Object)
Veraltet.
Veraltet.
Veraltet.

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.

FilePut(Int32, ValueType, Int64)

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.

FilePut(Int32, Single, Int64)

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.

FilePut(Int32, Int32, Int64)

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.

FilePut(Int32, Array, Int64, Boolean, Boolean)

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.

FilePut(Int32, Double, Int64)

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.

FilePut(Int32, Decimal, Int64)

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.

FilePut(Int32, DateTime, Int64)

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.

FilePut(Int32, Char, Int64)

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.

FilePut(Int32, Byte, Int64)

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.

FilePut(Int32, Boolean, Int64)

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.

FilePut(Int32, Int16, Int64)

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.

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 derRecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen 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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dies auch mit FileGettun, 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 der FileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLengthFileOpen -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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 den VarType(8) des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen 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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dies auch mit FileGettun, 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 der FileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLengthFileOpen -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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 den VarType(8) des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen 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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dies auch mit FileGettun, 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 der FileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLengthFileOpen -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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 den VarType(8) des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 das VarType(8) objekt identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 den VarType(8) des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen 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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dies auch mit FileGettun, 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 der FileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLengthFileOpen -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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 den VarType(8) des -Objekts identifiziert, einen Zwei-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichenfolgendaten. Die vom Parameter in der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 der RecordLength -Klausel in der FileOpen 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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString -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 der FileOpen 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

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 FilePutverwendenTrueStringIsFixedLength = , müssen Sie dasselbe mit FileGettun, 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 RecordLengthFileOpen -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 der RecordLength -Klausel der FileOpen -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 der RecordLength -Klausel in der 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 das VarType 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 als VarType(3) (Integer) identifizieren, und vier Bytes, die die Daten enthalten. Die vom Parameter in der RecordLengthFileOpen 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 der RecordLengthFileOpen 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 übergeben True , und die Zeichenfolge, in die StringIsFixedLength 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 fest True. 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 die RecordLength -Klausel in der FileOpen -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 der RecordLength -Klausel in der FileOpen -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. Das VBFixedString 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 der FileOpen -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

Gilt für: