FileSystem.FilePut Метод

Определение

Записывает данные из переменной в файл диска. Эта My функция обеспечивает лучшую производительность и производительность операций ввода-вывода файлов, чем FilePut. F Дополнительные сведения см. в разделе 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (Random файлы режима) или число байтов (Binary файлы режима), с которого начинается запись.

StringIsFixedLength
Boolean

Optional. Применяется только при написании строки. Указывает, следует ли записывать дескриптор длины двухбайтовой строки для строки в файл. Значение по умолчанию — 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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb

Внимание

FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.

Внимание

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

Внимание

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("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("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("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("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("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("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

Optional. Число записей (Random файлы режима) или число байтов (Binary файлы режима), с которого начинается запись.

Атрибуты

Исключения

RecordNumber < 1 и не равно -1.

Недопустимый режим файла.

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

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

FilePut(Int32, ValueType, Int64)

Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb

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

[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * ValueType * int64 -> unit
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
FileSystem.vb
Исходный код:
FileSystem.vb

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

[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * Array * int64 * bool * bool -> unit
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

Optional. Число записей (Random файлы режима) или число байтов (Binary файлы режима), с которого начинается запись.

ArrayIsDynamic
Boolean

Optional. Применяется только при написании массива. Указывает, должен ли массив обрабатываться как динамический, и следует ли писать дескриптор массива для строки, описывающей длину.

StringIsFixedLength
Boolean

Optional. Применяется только при написании строки. Указывает, следует ли записывать дескриптор длины двухбайтовой строки для строки в файл. Значение по умолчанию — 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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в 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
Исходный код:
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

Optional. Число записей (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 = TrueFilePut, необходимо сделать то же самое с 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 записывает только данные переменной. Длина записи, указанная RecordLength предложением в FileOpen функции, должна быть больше или равна длине записываемых данных.

  • FilePut записывает элементы структур, как если бы каждая из них была написана по отдельности, за исключением отсутствия заполнения между элементами. Атрибут VBFixedString можно применить к строковым полям в структурах, чтобы указать размер строки при записи на диск.

    Note

    Строковые поля, имеющие больше байтов, чем указано атрибутом VBFixedString , усечены при записи на диск.

Двоичный режим

Для файлов, открытых Binary в Random режиме, большинство правил режима применяются с некоторыми исключениями. Следующие правила для файлов, открытых в Binary режиме, отличаются от правил для Random режима:

  • Предложение RecordLength в FileOpen функции не действует. FilePut записывает все переменные на диск непрерывно, т. е. без заполнения между записями.

  • Для любого массива, отличного от массива в структуре, FilePut записывает только данные. Дескриптор при этом не записывается.

  • FilePut записывает строки переменной длины, которые не являются элементами структур без дескриптора двухбайтовой длины. Число записанных байтов равняется числу знаков в строке. Например, следующие операторы записывают 11 байт в файл номер 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Для записи в файл с помощью FilePut функции требуется Write доступ из FileIOPermissionAccess перечисления.

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

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