Inhalte
Index 🔎︎

# Anweisung Put#

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

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:

    Put [#]fileNum, [recordNum|filePos], variable

### Parameter:

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

recordNum, filePos: 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 = "C:\Users\ThisUser\data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Auf Anfang positionieren
          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 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

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Muss vom Typ 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 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

Verwandte Themen

Anweisung Close

Anweisung Get

Anweisung Open