FileSystem.FilePut Methode

Definition

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.F For more information, see FileSystem.

Überlädt

FilePut(Int32, Int64, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, String, Int64, Boolean)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Object, Object, Object)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, ValueType, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Single, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Int32, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

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

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Double, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Decimal, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, DateTime, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Char, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Byte, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Boolean, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Int16, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see FileSystem.

FilePut(Int32, Int64, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Int64

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, String, Int64, Boolean)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
String

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

StringIsFixedLength
Boolean

Dies ist optional.Optional. Betrifft nur das Schreiben einer Zeichenfolge.Applies only when writing a string. Gibt an, ob ein 2-Byte-Zeichenfolgenlängendeskriptor in die Datei für die Zeichenfolge geschrieben werden soll.Specifies whether to write a two-byte string length descriptor for the string to the file. Die Standardeinstellung ist False.The default is False.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Object, Object, Object)

Warnung

Diese API ist jetzt veraltet.

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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. https://go.microsoft.com/fwlink/?linkid=14202")]
[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);
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)

Parameter

FileNumber
Object

Erforderlich.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Object

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Object

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Attribute

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, ValueType, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
ValueType

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in derRecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in theRecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Single, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Single

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Int32, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Int32

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

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

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Array

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

ArrayIsDynamic
Boolean

Dies ist optional.Optional. Betrifft nur das Schreiben eines Arrays.Applies only when writing an array. 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.Specifies whether the array is to be treated as dynamic, and whether to write an array descriptor for the string that describes the length.

StringIsFixedLength
Boolean

Optional.Optional. Betrifft nur das Schreiben einer Zeichenfolge.Applies only when writing a string. Gibt an, ob ein 2-Byte-Zeichenfolgenlängendeskriptor in die Datei für die Zeichenfolge geschrieben werden soll.Specifies whether to write a two-byte string length descriptor for the string to the file. Die Standardeinstellung ist False.The default is False.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Double, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Double

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Decimal, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Decimal

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, DateTime, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
DateTime

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Char, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Char

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Byte, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Byte

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Boolean, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Boolean

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der die VarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying the VarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

FilePut(Int32, Int16, Int64)

Schreibt Daten aus einer Variablen in eine Datei auf einem Datenträger.Writes data from a variable to a disk file. Das My-Feature bietet höhere Produktivität und Leistung bei Datei-E/A-Vorgängen als FilePut.The My feature gives you better productivity and performance in file I/O operations than FilePut. Weitere Informationen finden Sie unter FileSystem.For more information, see 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.Required. Eine beliebige gültige Dateinummer.Any valid file number.

Value
Int16

Erforderlich.Required. Gültiger Variablenname, der auf den Datenträger geschriebene Daten enthält.Valid variable name that contains data written to disk.

RecordNumber
Int64

Dies ist optional.Optional. Datensatznummer (Dateien im Random-Modus) oder Bytenummer (Dateien im Binary-Modus), an der der Schreibvorgang beginnt.Record number (Random mode files) or byte number (Binary mode files) at which writing starts.

Ausnahmen

RecordNumber < 1 und ungleich –1.RecordNumber < 1 and not equal to -1.

Dateimodus ist ungültig.File mode is invalid.

Beispiele

In diesem Beispiel wird die FilePut-Funktion verwendet, um Daten in eine Datei zu schreiben.This example uses the FilePut function to write data to a file. Fünf Datensätze der Struktur Person werden in die Datei geschrieben.Five records of the structure Person are written to the file.

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.FilePut is valid only in Random and Binary mode.

Mit FilePut geschriebene Daten werden in der Regel mit FileGet aus einer Datei gelesen.Data written with FilePut is usually read from a file by using FileGet.

Der erste Datensatz oder das Byte in einer Datei befindet sich an Position 1, der zweite Datensatz bzw. das zweite Byte befindet sich an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie RecordNumberweglassen, wird der nächste Datensatz oder das nächste Byte nach dem letzten FileGet oder der FilePut Funktion geschrieben, oder es wird auf die letzte Seek Funktion verwiesen.If you omit RecordNumber, the next record or byte after the last FileGet or FilePut function or pointed to by the last Seek function is written.

Das StringIsFixedLength-Argument steuert, ob die Funktion Zeichen folgen als Variable oder eine Länge mit fester Länge interpretiert.The StringIsFixedLength argument controls whether the function interprets strings as variable or fixed length. FilePut schreibt den Längen Deskriptor nicht, wenn das Argument Trueist.FilePut does not write the length descriptor when the argument is True. Wenn Sie StringIsFixedLength = True mit FilePutverwenden, müssen Sie mit FileGetidentisch Vorgehen, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.If you use StringIsFixedLength = True with FilePut, you have to do the same with FileGet, and you have to make sure that the string is initialized to the length expected.

Zufälliger ModusRandom Mode

Für Dateien, die im Random Modus geöffnet werden, gelten die folgenden Regeln:For files opened in Random mode, the following rules apply:

  • Wenn die Länge der geschriebenen Daten kleiner ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, schreibt FilePut nachfolgende Datensätze an Grenzen der Daten Satz Länge.If the length of the data being written is less than the length specified in the RecordLength clause of the FileOpen function, FilePut writes subsequent records on record-length boundaries. Der Leerraum zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem vorhandenen Inhalt des Datei Puffers aufgefüllt.The space between the end of one record and the start of the next record is padded with the existing contents of the file buffer. Da die Menge der Auffüll Daten nicht mit Sicherheit bestimmt werden kann, empfiehlt es sich im Allgemeinen, die Daten Satz Länge mit der Länge der geschriebenen Daten zu vergleichen.Because the amount of padding data cannot be determined with any certainty, it is generally a good idea to have the record length match the length of the data being written. Wenn die Länge der geschriebenen Daten größer ist als die Länge, die in der RecordLength-Klausel der FileOpen-Funktion angegeben ist, wird eine Ausnahme ausgelöst.If the length of the data being written is greater than the length specified in the RecordLength clause of the FileOpen function, an exception will be thrown.

  • Wenn die Variable, die geschrieben wird, eine Zeichenfolge ist, schreibt FilePut einen 2-Byte-Deskriptor, der die Zeichen folgen Länge enthält, und schreibt dann die Daten, die in die Variable aufgenommen werden.If the variable being written is a string, FilePut writes a two-byte descriptor that contains the string length, and then writes the data that goes into the variable. Daher muss die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge mindestens zwei Bytes aufweisen, die größer als die tatsächliche Länge der Zeichenfolge ist.Therefore, the record length specified by the RecordLength clause in the FileOpen function must be at least two bytes greater than the actual length of the string.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das einen numerischen Typ enthält, FilePut schreibt zwei Bytes, die die VarType des Objekts identifizieren, und schreibt dann die Variable.If the variable being written is an object that contains a numeric type, FilePut writes two bytes identifying the VarType of the object and then writes the variable. Wenn Sie z. b. ein Objekt schreiben, das eine ganze Zahl enthält, werden FilePut sechs Bytes schreiben: zwei Bytes, die das Objekt als VarType(3) (Integer) und vier Bytes, die die Daten enthalten, identifizieren.For example, when writing an object that contains an integer, FilePut writes six bytes: two bytes that identify the object as VarType(3) (Integer) and four bytes that contain the data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens zwei Byte betragen, die größer ist als die tatsächliche Anzahl von Bytes, die zum Speichern der Variablen erforderlich sind.The record length specified by the RecordLength parameter in the FileOpen function must be at least two bytes greater than the actual number of bytes required to store the variable.

  • Wenn die Variable, die geschrieben wird, ein Objekt ist, das eine Zeichenfolge enthält, schreibt FilePut einen zwei-Byte-Deskriptor, der dieVarType(8) des Objekts identifiziert, einen 2-Byte-Deskriptor, der die Länge der Zeichenfolge angibt, und schreibt dann die Zeichen folgen Daten.If the variable being written is an object that contains a string, FilePut writes a two byte descriptor identifying theVarType(8) of the object, a two-byte descriptor indicating the length of the string, and then writes the string data. Die vom RecordLength-Parameter in der FileOpen-Funktion angegebene Daten Satz Länge muss mindestens vier Byte betragen, die größer als die tatsächliche Länge der Zeichenfolge ist.The record length specified by the RecordLength parameter in the FileOpen function must be at least four bytes greater than the actual length of the string. Wenn Sie eine Zeichenfolge ohne den Deskriptor platzieren möchten, sollten Sie True an den StringIsFixedLength-Parameter übergeben, und die Zeichenfolge, in die Sie eingelesen haben, sollte die richtige Länge aufweisen.If you want to put a string without the descriptor, you should pass True to the StringIsFixedLength parameter, and the string you read into should be the correct length.

  • Wenn die Variable, die geschrieben wird, ein Array ist, können Sie entscheiden, ob ein Deskriptor für die Größe und die Dimensionen des Arrays geschrieben werden soll.If the variable being written is an array, you have a choice as to whether or not to write a descriptor for the size and dimensions of the array. In Visual Basic 6,0 und früheren Versionen wird der Dateideskriptor für ein dynamisches Array geschrieben, jedoch nicht für ein Array mit fester Größe.Visual Basic 6.0 and earlier versions write the file descriptor for a dynamic array but not for a fixed-size array. Visual Basic 2005 wird der Deskriptor standardmäßig nicht geschrieben.Visual Basic 2005 defaults to not writing the descriptor. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic-Parameter auf Truefest.To write the descriptor, set the ArrayIsDynamic parameter to True. Beim Schreiben des Arrays müssen Sie der Art und Weise entsprechen, in der das Array gelesen wird. Wenn Sie mit dem Deskriptor gelesen wird, müssen Sie den Deskriptor schreiben.When writing the array, you have to match the way the array will be read; if it will be read with the descriptor, you have to write the descriptor. Der Deskriptor gibt den Rang des Arrays, die Größe und die unteren Grenzen für jeden Rang an.The descriptor specifies the rank of the array, the size, and the lower bounds for each rank. Die Länge ist 2 plus das 8-fache der Anzahl der Dimensionen: (2 + 8 * anzahldimensionen).Its length equals 2 plus 8 times the number of dimensions: (2 + 8 * NumberOfDimensions). Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Summe aller Bytes sein, die zum Schreiben der Array Daten und des Array Deskriptors erforderlich sind.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the sum of all the bytes required to write the array data and the array descriptor. Die folgende Array Deklaration benötigt z. b. 218 bytes, wenn das Array auf den Datenträger geschrieben wird.For example, the following array declaration requires 218 bytes when the array is written to disk.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Variable, die geschrieben wird, ein beliebiger anderer Typ der Variablen ist (keine Zeichenfolge mit variabler Länge oder ein Objekt), werden FilePut nur die Variablen Daten schreiben.If the variable being written is any other type of variable (not a variable-length string or an object), FilePut writes only the variable data. Die von der RecordLength-Klausel in der FileOpen-Funktion angegebene Daten Satz Länge muss größer oder gleich der Länge der geschriebenen Daten sein.The record length specified by the RecordLength clause in the FileOpen function must be greater than or equal to the length of the data being written.

  • FilePut schreibt Elemente von Strukturen so, als wären Sie einzeln geschrieben worden, mit dem Unterschied, dass keine Auffüll Zeichen zwischen Elementen vorhanden sind.FilePut writes elements of structures as if each were written individually, except there is no padding between elements. Das VBFixedString-Attribut kann auf Zeichen folgen Felder in den Strukturen angewendet werden, um die Größe der Zeichenfolge beim Schreiben auf den Datenträger anzugeben.The VBFixedString attribute can be applied to string fields in the structures to indicate the size of the string when written to disk.

    Hinweis

    Zeichen folgen Felder, die mehr Bytes aufweisen, als durch das VBFixedString-Attribut angegeben werden, werden beim Schreiben auf den Datenträger abgeschnitten.String fields that have more bytes than specified by the VBFixedString attribute are truncated when written to disk,

BinärmodusBinary Mode

Bei Dateien, die im Binary Modus geöffnet wurden, gelten die meisten Random Modusregeln mit einigen Ausnahmen.For files opened in Binary mode, most of the Random mode rules apply, with some exceptions. Die folgenden Regeln für Dateien, die im Binary Modus geöffnet werden, unterscheiden sich von den Regeln für Random-Modus:The following rules for files opened in Binary mode differ from the rules for Random mode:

  • Die RecordLength-Klausel in der FileOpen-Funktion hat keine Auswirkungen.The RecordLength clause in the FileOpen function has no effect. FilePut alle Variablen zusammenhängend auf den Datenträger schreibt, d. h. ohne Auffüll Zeichen zwischen Datensätzen.FilePut writes all variables to disk contiguously, that is, without padding between records.

  • Für ein beliebiges Array, das kein Array in einer Struktur ist, schreibt FilePut nur die Daten.For any array other than an array in a structure, FilePut writes only the data. Es wurde kein Deskriptor geschrieben.No descriptor is written.

  • FilePut schreibt Zeichen folgen variabler Länge, die keine Elemente von Strukturen sind, ohne den zwei Byte langen Längen Deskriptor.FilePut writes variable-length strings that are not elements of structures without the two-byte length descriptor. Die Anzahl der geschriebenen Bytes ist mit der Anzahl der Zeichen in der Zeichenfolge.The number of bytes written equals the number of characters in the string. Beispielsweise schreiben die folgenden Anweisungen 11 Bytes in die Dateinummer 1:For example, the following statements write 11 bytes to file number 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zum Schreiben in eine Datei mit der FilePut-Funktion ist Write Zugriff von der FileIOPermissionAccess-Enumeration erforderlich.Writing to a file by using the FilePut function requires Write access from the FileIOPermissionAccess enumeration.

Siehe auch

Gilt für: