FileSystem.FilePut Метод

Определение

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Дополнительные сведения см. в разделе FileSystem.

Перегрузки

FilePut(Int32, Int64, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, String, Int64, Boolean)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Object, Object, Object)
Устаревшие..
Устаревшие..
Устаревшие..

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, ValueType, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Single, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Int32, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Array, Int64, Boolean, Boolean)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Double, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Decimal, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, DateTime, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Char, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Byte, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Boolean, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

FilePut(Int32, Int16, Int64)

Записывает значения переменных в файл на диске. Функция My обеспечивает более высокие показатели производительности и быстродействия в операциях файлового ввода-вывода в сравнении с FilePut. Для получения дополнительной информации см. FileSystem.

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. Visual Basic 6.0 и более ранних версий записывает дескриптор файла для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная предложением RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная предложением RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к

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 функции, должна быть не менее чем на четыре байта больше фактической длины строки. Если вы хотите поместить строку без дескриптора, следует передать TrueStringIsFixedLength в параметр , а строка, в которую вы читаете, должна иметь правильную длину.

  • Если записываемая переменная является массивом, вы можете выбрать, следует ли писать дескриптор для размера и размеров массива. В Visual Basic 6.0 и более ранних версиях дескриптор файла записывается для динамического массива, но не для массива фиксированного размера. По умолчанию в Visual Basic 2005 дескриптор не записывается. Чтобы записать дескриптор, задайте ArrayIsDynamic для параметра значение True. При записи массива необходимо соответствовать способу чтения массива; Если он будет считываться с помощью дескриптора, необходимо написать дескриптор. Дескриптор задает ранг массива, размер и нижние границы для каждого ранга. Его длина в 2 плюс 8 раз превышает количество измерений: (2 + 8 * NumberOfDimensions). Длина записи, указанная в предложении RecordLength в FileOpen функции, должна быть больше или равна сумме всех байтов, необходимых для записи данных массива и дескриптора массива. Например, для следующего объявления массива требуется 218 байт при записи массива на диск.

    Dim MyArray(4, 9) As Integer
    
  • Если записываемая переменная является любым другим типом переменной (не строкой переменной длины или объектом), FilePut записывает только данные переменной. Длина записи, указанная в предложении RecordLengthFileOpen в функции, должна быть больше или равна длине записываемых данных.

  • 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 .

См. также раздел

Применяется к