Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

FileSystem.FilePut-Methode: (Int32, Byte, Int64)

 

Veröffentlicht: Oktober 2016

Schreibt Daten aus einer Variablen in eine Datei. Die My -Funktion können Sie eine höhere Produktivität und Leistung bei-e/a-Dateivorgängen als FilePut. Weitere Informationen finden Sie unter FileSystem.

Namespace:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public static void FilePut(
	int FileNumber,
	byte Value,
	long RecordNumber = -1
)

Parameter

FileNumber
Type: System.Int32

Erforderlich. Eine beliebige gültige Dateinummer.

Value
Type: System.Byte

Erforderlich. Name einer gültigen Variablen, die geschriebenen Daten auf dem Datenträger.

RecordNumber
Type: System.Int64

Optional. Datensatznummer (Random Dateien-Modus) oder Byte-Nummer (Binary Dateien-Modus) an der der Schreibvorgang beginnt.

Exception Condition
ArgumentException

RecordNumber < 1 und nicht gleich-1.

IOException

FileNumber ist nicht vorhanden.

IOException

Dateimodus ist ungültig.

FilePut ist nur in Random und Binary Modus.

Mit geschriebene Daten FilePut ist in der Regel aus einer Datei lesen, mit FileGet.

Der erste Datensatz oder Byte in einer Datei beginnt an Position 1, der zweite Datensatz bzw. das Byte an Position 2 usw.. Wenn Sie weglassen RecordNumber, den nächsten Datensatz bzw. das Byte nach dem letzten FileGet oder FilePut Funktion oder auf den letzten Seek Funktion geschrieben ist.

Die StringIsFixedLength -Argument steuert, ob die Funktion Zeichenfolgen als Variable oder feste Länge interpretiert. FilePut den Längendeskriptor wird nicht geschrieben werden, wenn das Argument ist True. Bei Verwendung von StringIsFixedLength = True mit FilePut, Sie haben die gleiche mit FileGet, und Sie müssen sicherstellen, dass die Zeichenfolge mit der erwarteten Länge initialisiert wird.

Für Dateien in geöffnet Random Modus gelten die folgenden Regeln:

  • Wenn die Länge der zu schreibenden Daten kleiner als die Länge, die im angegebenen ist der RecordLength -Klausel der FileOpen -Funktion FilePut geschriebene nachfolgende Datensätze Datensatzlänge. Der Abstand zwischen dem Ende eines Datensatzes und dem Anfang des nächsten Datensatzes wird mit dem bestehenden Inhalt des Dateipuffers aufgefüllt. Da die Abstand Datenmenge mit Sicherheit bestimmt werden kann, ist es im Allgemeinen eine gute Idee, die Datensatzlänge der Länge der geschriebenen Daten übereinstimmen. Ist die Länge der zu schreibenden Daten größer als die Länge der RecordLength -Klausel der FileOpen -Funktion eine Ausnahme ausgelöst.

  • Wenn die Zielvariable ein String ist FilePut eine 2-Byte-Deskriptor, die Länge der Zeichenfolge enthält, und schreibt dann die Daten, die der Variablen. Aus diesem Grund die Datensatzlänge durch die RecordLength -Klausel in der FileOpen muss mindestens zwei Bytes größer als die tatsächliche Länge der Zeichenfolge sein.

  • Wenn die Zielvariable ein Objekt ist, die einen numerischen Typ enthält, FilePut schreibt zwei Bytes zur Identifizierung der VarType des Objekts und anschließend die Variable geschrieben. Enthält z. B. bei einem Objekt, das eine ganze Zahl FilePut schreibt sechs Bytes: zwei Bytes zur Identifizierung des Objekts als VarType(3) (Integer) und vier Bytes mit den Daten. Die angegebene Datensatzlänge der RecordLength -Parameter in der FileOpen muss mindestens zwei Bytes größer als die tatsächliche Anzahl von Bytes zum Speichern der Variablen erforderlich sein.

  • Wenn die Zielvariable ein Objekt, das eine Zeichenfolge enthält FilePut schreibt eine 2-Byte-Deskriptor identifizieren die VarType(8) des Objekts, ein 2-Byte-Deskriptor, der angibt, der Länge der Zeichenfolge und anschließend die Zeichenfolgendaten. Die angegebene Datensatzlänge der RecordLength -Parameter in der FileOpen Funktion muss mindestens vier Bytes größer als die tatsächliche Länge der Zeichenfolge sein. Wenn Sie eine Zeichenfolge ohne Deskriptor ablegen möchten, sollten Sie übergeben True an den StringIsFixedLength -Parameter und die Zeichenfolge, die Sie einlesen, sollte die richtige Länge aufweisen.

  • Wenn die Zielvariable ein Array ist, müssen Sie entscheiden, ob Sie einen Deskriptor für die Größe und die Dimensionen des Arrays zu schreiben. Visual Basic 6.0 und früheren Versionen schreiben Dateideskriptor nur für dynamische Arrays und nicht für Arrays mit fester Größe. Visual Basic 2005 ist standardmäßig kein Deskriptor geschrieben. Legen Sie zum Schreiben des Deskriptors den ArrayIsDynamic -Parameter True. Beim Schreiben des Arrays müssen Sie genauso Array gelesen wird. mit Deskriptor gelesen werden, müssen Sie den Deskriptor geschrieben werden. Der Deskriptor gibt den Rang des Arrays, die Größe und die Untergrenze jedes Ranges an. Seine Länge entspricht 2 plus 8 Mal der Anzahl von Dimensionen: (2 + 8 * NumberOfDimensions). Die angegebene Datensatzlänge der RecordLength -Klausel in der FileOpen Funktion muss größer als oder gleich der Summe aller Bytes erforderlich, um die Daten des Arrays und den Arraydeskriptor geschrieben sein. Die folgende Arraydeklaration erfordert z. B. 218 Bytes, wenn das Array geschrieben ist auf dem Datenträger.

    Dim MyArray(4, 9) As Integer
    
  • Wenn die Zielvariable einen anderen Typ (keine Zeichenfolge variabler Länge noch Objekt), ist FilePut schreibt nur die Daten der Variablen. Die angegebene Datensatzlänge der RecordLength -Klausel in der FileOpen Funktion muss größer als oder gleich der Länge der zu schreibenden Daten.

  • FilePut Schreibt die Elemente von Strukturen als ob Sie einzeln angelegt wurden jedoch keinen Leerraum zwischen den Elementen. Die VBFixedString Attribut angewendet werden kann, Zeichenfolgenfelder in den Strukturen, die Größe der Zeichenfolge beim Schreiben auf den Datenträger.

    System_CAPS_noteHinweis

    Felder, die mehr als Bytes angegebene Zeichenfolge die VBFixedString Attribut werden abgeschnitten, beim Schreiben auf den Datenträger

Für Dateien in geöffnet Binary Modus, die meisten der Random -Modus-Regeln anwenden, mit einigen Ausnahmen. Die folgenden Regeln für Dateien geöffnet, Binary Modus unterscheiden sich von den Regeln für Random Modus:

  • Die RecordLength -Klausel in der FileOpen Funktion hat keine Auswirkung. FilePut Schreibt alle Variablen zusammenhängend, d. h. ohne Leerraum zwischen Datensätzen Datenträger.

  • Für ein beliebiges Array als ein Array in einer Struktur FilePut schreibt nur die Daten. Es wird kein Deskriptor geschrieben.

  • FilePut schreibt Zeichenfolgen variabler Länge, die keine Elemente von Strukturen sind, ohne den Deskriptor für die Länge von 2 Bytes sind. Die Anzahl der geschriebenen Bytes entspricht die Anzahl der Zeichen in der Zeichenfolge. Die folgenden Anweisungen schreiben z. B. 11 Bytes in Dateinummer 1 an:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Schreiben in eine Datei mit der FilePut -Funktion erfordert Write zugreifen, die FileIOPermissionAccess Enumeration.

Dieses Beispiel verwendet die FilePut -Funktion Daten in eine Datei geschrieben. Fünf Datensätze der Struktur Person in die Datei geschrieben werden.

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

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: