FileSystem.FilePut Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Дополнительные сведения см. в разделе FileSystem.
Перегрузки
FilePut(Int32, Int64, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, String, Int64, Boolean) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Object, Object, Object) |
Устаревшие..
Устаревшие..
Устаревшие..
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, ValueType, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Single, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Int32, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Array, Int64, Boolean, Boolean) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Double, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Decimal, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, DateTime, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Char, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Byte, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Boolean, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Int16, Int64) |
Записывает значения переменных в файл на диске. Функция |
FilePut(Int32, Int64, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Int64
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, String, Int64, Boolean)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- String
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
- StringIsFixedLength
- Boolean
Необязательный элемент. Используется только при записи строки. Указывает, записывать ли в файл двухбайтовый дескриптор длины строки. Значение по умолчанию — False
.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Object, Object, Object)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Внимание!
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
Внимание!
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Внимание!
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Параметры
- FileNumber
- Object
Обязательный. Любой допустимый номер файла.
- Value
- Object
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Object
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
- Атрибуты
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, ValueType, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- ValueType
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяется большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме , отличаются от правил режима Random
.
Предложение
RecordLength
вFileOpen
функции не действует.FilePut
записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Single, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Single
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяется большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме , отличаются от правил режима Random
.
Предложение
RecordLength
вFileOpen
функции не действует.FilePut
записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Int32, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Int32
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяется большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме , отличаются от правил режима Random
.
Предложение
RecordLength
вFileOpen
функции не действует.FilePut
записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Array
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
- ArrayIsDynamic
- Boolean
Необязательный элемент. Применяется только при записи массива. Указывает, нужно ли обрабатывать массив как динамический, и записывать ли дескриптор массива для строки, определяющий ее длину.
- StringIsFixedLength
- Boolean
Необязательный элемент. Используется только при записи строки. Указывает, записывать ли в файл двухбайтовый дескриптор длины строки. Значение по умолчанию — False
.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Double, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Double
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Decimal, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Decimal
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяется большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме , отличаются от правил режима Random
.
Предложение
RecordLength
вFileOpen
функции не действует.FilePut
записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, DateTime, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- DateTime
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Char, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Char
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Byte, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Byte
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Boolean, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Boolean
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
последующие записи записываются на границы длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым буфера файлов. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
предложениемFileOpen
в функции, должна быть по крайней мере на два байта больше фактической длины строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложениемRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная предложениемRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
может применяться к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, имеющие больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяются большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме, отличаются от правил режима Random
.
Предложение
RecordLength
в функции не имеет никакогоFileOpen
действия.FilePut
Записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без двухбайтового дескриптора длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic
Применяется к
FilePut(Int32, Int16, Int64)
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
- Исходный код:
- FileSystem.vb
Записывает значения переменных в файл на диске. Функция My
обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut
. Для получения дополнительной информации см. FileSystem.
public static void FilePut (int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Параметры
- FileNumber
- Int32
Обязательный. Любой допустимый номер файла.
- Value
- Int16
Обязательный. Допустимое имя переменной, содержащей данные для записи на диск.
- RecordNumber
- Int64
Необязательный элемент. Номер записи (файлы, открытые в режиме Random
) или номер байта (файлы, открытые в режиме Binary
), с которого начинается запись.
Исключения
RecordNumber
< 1 и не равно –1.
Недопустимый режим файла.
Примеры
В этом примере функция используется FilePut
для записи данных в файл. В файл записываются пять записей структуры Person
.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Комментарии
FilePut
является допустимым только в Random
режиме и Binary
.
Данные, записанные с использованием FilePut
, обычно считываются с помощью FileGet
.
Первая запись или байт в файле находится в позиции 1, вторая запись или байт находится в позиции 2 и т. д. Если опустить RecordNumber
, записывается следующая запись или байт после последней FileGet
функции или FilePut
, на которую указывает последняя Seek
функция.
Аргумент StringIsFixedLength
определяет, интерпретирует ли функция строки как переменную или фиксированную длину. FilePut
не записывает дескриптор длины, если аргумент имеет значение True
. Если вы используете StringIsFixedLength
= True
с FilePut
, необходимо сделать то же самое с FileGet
, и убедитесь, что строка инициализирована ожидаемой длиной.
Случайный режим
Для файлов, открытых в Random
режиме , применяются следующие правила:
Если длина записываемых данных меньше длины, указанной в
RecordLength
предложенииFileOpen
функции,FilePut
записывает последующие записи по границам длины записей. Пространство между концом одной записи и началом следующей записи заполняется существующим содержимым файлового буфера. Так как объем данных заполнения не может быть определен с какой-либо определенностью, обычно рекомендуется, чтобы длина записи соответствовала длине записываемых данных. Если длина записываемых данных больше длины, указанной вRecordLength
предложенииFileOpen
функции, будет выдано исключение.Если записываемая переменная является строкой,
FilePut
записывает двухбайтовый дескриптор, содержащий длину строки, а затем записывает данные, которые входят в переменную. Таким образом, длина записи, указаннаяRecordLength
в предложении вFileOpen
функции, должна быть по крайней мере на два байта больше, чем фактическая длина строки.Если записываемая переменная является объектом, содержащим числовой тип, записывает два байта,
FilePut
идентифицирующиеVarType
объект , а затем записывает переменную. Например, при записи объекта, содержащего целое число,FilePut
записывает шесть байтов: два байта, которые идентифицируют объект какVarType(3)
(Integer
), и четыре байта, содержащие данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть по крайней мере на два байта больше фактического числа байтов, необходимых для хранения переменной.Если записываемая переменная является объектом, содержащим строку,
FilePut
записывает двухбайтовый дескриптор, определяющийVarType(8)
объект , двухбайтовый дескриптор, указывающий длину строки, а затем записывает строковые данные. Длина записи, указанная параметромRecordLength
вFileOpen
функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передатьTrue
StringIsFixedLength
в параметр , а строка, в которую вы читаете, должна иметь правильную длину.Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте
ArrayIsDynamic
для параметра значениеTrue
. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложенииRecordLength
вFileOpen
функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.Dim MyArray(4, 9) As Integer
Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом),
FilePut
записывает только данные переменной. Длина записи, указанная в предложенииRecordLength
FileOpen
в функции, должна быть больше или равна длине записываемых данных.FilePut
записывает элементы структур так, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. АтрибутVBFixedString
можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.Примечание
Строковые поля, которые имеют больше байтов, чем указано атрибутом
VBFixedString
, усекаются при записи на диск.
Двоичный режим
Для файлов, открытых Random
в Binary
режиме , применяется большинство правил режима, за некоторыми исключениями. Следующие правила для файлов, открытых в Binary
режиме , отличаются от правил режима Random
.
Предложение
RecordLength
вFileOpen
функции не действует.FilePut
записывает все переменные на диск непрерывно, то есть без заполнения между записями.Для любого массива, отличного от массива в структуре,
FilePut
записывает только данные. Дескриптор не записывается.FilePut
записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равно количеству символов в строке. Например, следующие операторы записывают 11 байтов в файл с номером 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Для записи в файл с помощью
FilePut
функции требуетсяWrite
доступ из перечисления FileIOPermissionAccess .
См. также раздел
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Запись в файлы в Visual Basic