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 [#]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 = "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 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
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