Оператор Put#
Записва запис във файл с произволен достъп или последователност от байтове в двоичен файл.
Операторът Print# служи за отпечатване на данни в текстов файл с последователен достъп. Операторът Write# служи за записване на данни в текстов файл с последователен достъп със знаци разделители.
Put [#]fileNum, [recordNum|filePos], variable
fileNum: целочислен израз, задаващ файла, в който искате да записвате.
recordNum, filePos: за файлове с произволен достъп – номерът на записа, който желаете да запишете.
За двоични файлове – позицията на байта, от който трябва да започне записването.
variable: името на променливата, чиято стойност да бъде записана във файла.
Забележка за файлове с произволен достъп: ако съдържанието на тази променлива не отговаря на дължината на записа, зададена в клаузата Len на оператора Open, пространството между новозаписания и следващия го запис се запълва със съществуващи данни от файла, в който записвате.
Забележка за двоични файлове: съдържанието на променливите се записва в зададената позиция и файловият указател се поставя точно след последния байт. Между записите не се оставя място.
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sText As Variant ' Трябва да бъде от тип Variant
Dim aFile As String
aFile = "C:\Users\ThisUser\data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iNumber, 1 ' Позиционираме в началото
Put #iNumber, , "Това е първият ред с текст" ' Запълваме ред с текст
Put #iNumber, , "Това е вторият ред с текст"
Put #iNumber, , "Това е третият ред с текст"
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, , "Това е нов текст"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "Това е текстът в запис 20"
Print Lof(#iNumber)
Close #iNumber
End Sub
Sub ExampleRandomAccess
Dim iNumber As Integer
Dim sText As Variant ' Трябва да бъде от тип Variant
Dim aFile As String
aFile = "~/data.txt"
iNumber = Freefile
Open aFile For Random As #iNumber Len=32
Seek #iNumber, 1 ' Позиционираме в началото
Put #iNumber, , "Това е първият ред с текст" ' Запълваме ред с текст
Put #iNumber, , "Това е вторият ред с текст"
Put #iNumber, , "Това е третият ред с текст"
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, , "Това е нов текст"
Get #iNumber, 1, sText
Get #iNumber, 2, sText
Put #iNumber, 20, "Това е текстът в запис 20"
Print Lof(#iNumber)
Close #iNumber
End Sub