Hilfe für LibreOffice 7.3
Liest einen Datensatz aus einer relativen Datei oder eine Folge von Bytes aus einer binären Datei in eine Variable ein.
Vergleichen Sie auch: Anweisung PUT
Get [#]fileNum, [recordNum|filePos], variable
fileNum: Ein ganzzahliger Ausdruck, der die Dateinummer festlegt.
recordNum: Bei Dateien, die im Zufallsmodus geöffnet wurden, ist recordNum die Nummer des Datensatzes, den Sie lesen möchten.
Bei im Binärmodus geöffneten Dateien ist filePos die Byte-Position in der Datei, an der das Lesen beginnt.
Wenn recordNum und filePos weggelassen werden, wird die aktuelle Position bzw. der aktuelle Datensatz der Datei verwendet.
variable: Name der zu lesenden Variablen. Mit Ausnahme von Objektvariablen können Sie jeden Variablentyp verwenden.
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, , "This is the first line of text" ' Fill line with text
Put #iNumber, , "This is the second line of text"
Put #iNumber, , "This is the third line of 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, , "This is a new text"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "This is the text in record 20"
Print Lof(#iNumber)
Close #iNumber
End Sub
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sText As Variant ' Must be a variant
Dim aFile As String
aFile = "~/data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iNumber,1 ' Position at beginning
Put #iNumber, , "This is the first line of text" ' Fill line with text
Put #iNumber, , "This is the second line of text"
Put #iNumber, , "This is the third line of 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, , "This is a new text"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "This is the text in record 20"
Print Lof(#iNumber)
Close #iNumber
End Sub