Anweisung Put#

Schreibt einen Datensatz in eine relative Datei oder eine Folge von Bytes in eine binäre Datei.

tip

Verwenden Sie die Anweisung Print#, um Daten in eine sequentielle Textdatei zu schreiben. Verwenden Sie die Anweisung Write#, um Daten mit Trennzeichen in eine sequentielle Textdatei zu schreiben.


Syntax:

Diagramm der Anweisung Put

Put [#]DateiNum, [DSatzNum|DateiPos], Variable

Parameter:

DateiNum: Ein ganzzahliger Ausdruck, der die Datei definiert, in die Sie schreiben möchten.

DSatzNum, DateiPos: Bei relativen Dateien (Random Access-Dateien) die Nummer des Datensatzes, den Sie schreiben möchten.

Bei Binärdateien (Binärzugriff) ist Position die Byteposition für den Schreibbeginn in der Datei.

Variable: Name der Variablen, die Sie in die Datei schreiben möchten.

Hinweis für relative Dateien: Stimmt der Inhalt dieser Variablen nicht mit der im Teil Len der Anweisung Open angegebenen Satzlänge überein, so wird der überschüssige Speicherplatz zwischen dem Ende des neu geschriebenen Datensatzes und dem nächsten Datensatz mit vorhandenen Daten aus der Ausgabedatei aufgefüllt.

Hinweis für Binärdateien: Der Inhalt der Variablen wird an die angegebene Position geschrieben und der Dateizeiger direkt hinter das letzte Byte gesetzt. Zwischen den Datensätzen wird kein Platz gelassen.

Beispiel:

Sub ExampleRandomAccess
    Dim iNumber As Integer
    Dim sText As Variant ' Muss "Variant" sein
    Dim aFile As String
    aFile = "~/data.txt"
    iNumber = Freefile
    Open aFile For Random As #iNumber Len=32
    Seek #iNumber,1 ' Position am Anfang
    Put #iNumber, , "Dies ist die erste Zeile Text" ' Zeile mit Text füllen
    Put #iNumber, , "Dies ist die zweite Zeile Text"
    Put #iNumber, , "Dies ist die dritte Zeile Text"
    Seek #iNumber,2
    Get #iNumber, , sText
    Print sText
    Close #iNumber
    iNumber = Freefile
    Open aFile For Random As #iNumber Len=32
    Get #iNumber, 2, sText
    Put #iNumber, , "Dies ist ein neuer Text"
    Get #iNumber, 1, sText
    Get #iNumber, 2, sText
    Put #iNumber, 20, "Dies ist der Text im Datensatz 20"
    Print Lof(#iNumber)
    Close #iNumber
End Sub

Bitte unterstützen Sie uns!