FileSystem.FilePut 方法

定义

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关更多信息,请参见 FileSystem

重载

FilePut(Int32, Int64, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, String, Int64, Boolean)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Object, Object, Object)
已过时.
已过时.
已过时.

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, ValueType, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Single, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Int32, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

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

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Double, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Decimal, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, DateTime, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Char, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Byte, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Boolean, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Int16, Int64)

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

FilePut(Int32, Int64, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Int64

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Int32, String, Int64, Boolean)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
String

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

StringIsFixedLength
Boolean

可选。 仅在写入字符串时适用。 指定是否将字符串的双字节字符串长度说明符写入文件中。 默认值为 False

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Object, Object, Object)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

注意

This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202

注意

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

注意

Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public:
 static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)

参数

FileNumber
Object

必需。 任何有效文件数。

Value
Object

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Object

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

属性

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Int32, ValueType, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
ValueType

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Int32, Single, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Single

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Int32, Int32, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Int32

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

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

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Array

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

ArrayIsDynamic
Boolean

可选。 仅当写入数组时使用。 指定是否将数组视为动态数组,以及是否写入用于描述字符串长度的数组说明符。

StringIsFixedLength
Boolean

可选。 仅在写入字符串时适用。 指定是否将字符串的双字节字符串长度说明符写入文件中。 默认值为 False

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Double, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Double

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Decimal, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Decimal

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在 模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外。 在 模式下 Binary 打开的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句无效。 FilePut 将所有变量连续写入磁盘,即不填充记录。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 不编写描述符。

  • FilePut 写入长度可变的字符串,这些字符串不是没有双字节长度描述符的结构元素。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件编号 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举进行访问。

另请参阅

适用于

FilePut(Int32, DateTime, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
DateTime

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一条记录或字节位于位置 1,第二条记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后 FileGet 一个 或 函数后或 FilePut 最后 Seek 一个函数指向的下一个记录或字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当参数为 True时,不编写长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于以 Random 模式打开的文件,以下规则适用:

  • 如果要写入的数据的长度小于函数的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 使用文件缓冲区的现有内容填充一条记录末尾和下一条记录开头之间的空格。 由于无法确定填充数据的数量,因此通常最好让记录长度与正在写入的数据的长度相匹配。 如果要写入的数据的长度大于函数的 FileOpen 子句中指定的RecordLength长度,将引发异常。

  • 如果要写入的变量是字符串, FilePut 则 写入包含字符串长度的两字节描述符,然后写入该变量中的数据。 因此,由 函数中的 FileOpen 子句指定的RecordLength记录长度必须至少大于字符串的实际长度的两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则 写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在写入包含整数的对象时, FilePut 将写入 6 个字节:两个字节(将对象标识为 VarType(3) (Integer) )和 4 个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少大于存储变量所需的实际字节数的两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 该对象的 的两个字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大四个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果要写入的变量是数组,则可以选择是否为数组的大小和维度编写描述符。 Visual Basic 6.0 及更早版本为动态数组写入文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取,则必须编写描述符。 描述符指定数组的排名、大小以及每个排名的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * numberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果要写入的变量是任何其他类型的变量 (不是可变长度字符串或) 的对象, FilePut 则 只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于正在写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,只不过元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,如果字符串字段的字节数超过 属性指定的 VBFixedString 字节数,则将被截断。

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Char, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Char

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Byte, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Byte

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Boolean, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Boolean

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识 VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于

FilePut(Int32, Int16, Int64)

Source:
FileSystem.vb
Source:
FileSystem.vb
Source:
FileSystem.vb

将变量中得数据写入磁盘文件中。 相比 FilePutMy 功能可使文件 I/O 操作的效率更高、性能更好。 有关详细信息,请参阅 FileSystem

public static void FilePut (int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)

参数

FileNumber
Int32

必需。 任何有效文件数。

Value
Int16

必需。 有效变量名,它包含写入磁盘的数据。

RecordNumber
Int64

可选。 开始写入处的记录号(Random 模式文件)或字节号(Binary 模式文件)。

例外

RecordNumber< 1 且不等于 -1。

文件模式无效。

示例

此示例使用 FilePut 函数将数据写入文件。 结构的 Person 五条记录将写入文件。

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

注解

FilePut 仅在 RandomBinary 模式下有效。

通常使用 FileGet 从文件中读取使用 FilePut 编写的数据。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依序排列。 如果省略 RecordNumber,则写入最后FileGet一个 或 函数之后或最后一个函数指向的下Seek一个记录或FilePut字节。

参数 StringIsFixedLength 控制函数是将字符串解释为可变长度还是固定长度。 FilePut 当 参数为 True时,不写入长度描述符。 如果将 与 一起使用StringIsFixedLengthFilePut = True,则必须对 FileGet执行相同的操作,并且必须确保字符串已初始化为预期的长度。

随机模式

对于在模式下 Random 打开的文件,以下规则适用:

  • 如果正在写入的数据长度小于函数 的 FileOpen 子句中指定的RecordLength长度,FilePut则会在记录长度边界上写入后续记录。 一条记录的末尾和下一条记录的开头之间的空间用文件缓冲区的现有内容填充。 由于无法确定填充数据量,因此通常最好让记录长度与正在写入的数据的长度匹配。 如果正在写入的数据长度大于函数 的 FileOpen 子句中指定的RecordLength长度,则会引发异常。

  • 如果要写入的变量是字符串, FilePut 则写入包含字符串长度的两字节描述符,然后写入进入变量的数据。 因此,函数中的 FileOpen 子句指定的RecordLength记录长度必须至少比字符串的实际长度大两个字节。

  • 如果要写入的变量是包含数值类型的对象, FilePut 则写入两个字节来标识 VarType 对象的 ,然后写入变量。 例如,在编写包含整数的对象时, FilePut 会写入六个字节:两个字节(将对象标识为 VarType(3) (Integer) )和四个包含数据的字节。 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比存储变量所需的实际字节数大两个字节。

  • 如果要写入的变量是包含字符串的对象, FilePut 则编写一个标识VarType(8) 对象的 的两字节描述符,一个指示字符串长度的双字节描述符,然后写入字符串数据。 由 函数中的 FileOpen 参数指定的RecordLength记录长度必须至少比字符串的实际长度大 4 个字节。 如果要放置不带描述符的字符串,则应传递给 TrueStringIsFixedLength 参数,并且读取到的字符串应为正确的长度。

  • 如果正在写入的变量是数组,则可以选择是否为数组的大小和尺寸编写描述符。 Visual Basic 6.0 及更早版本为动态数组编写文件描述符,但不为固定大小的数组编写文件描述符。 Visual Basic 2005 默认不编写描述符。 若要编写描述符,请将 ArrayIsDynamic 参数设置为 True。 编写数组时,必须匹配数组的读取方式;如果将使用描述符读取它,则必须编写描述符。 描述符指定数组的排名、大小和每个秩的下限。 其长度等于维度数的 2 加 8 倍: (2 + 8 * NumberOfDimensions) 。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于写入数组数据和数组描述符所需的所有字节的总和。 例如,将数组写入磁盘时,以下数组声明需要 218 个字节。

    Dim MyArray(4, 9) As Integer
    
  • 如果正在写入的变量是任何其他类型的变量, (不是可变长度字符串或对象) , FilePut 则只写入变量数据。 函数中的 FileOpen 子句指定的RecordLength记录长度必须大于或等于要写入的数据的长度。

  • FilePut 写入结构的元素,就好像每个元素都是单独写入的,除非元素之间没有填充。 属性 VBFixedString 可以应用于结构中的字符串字段,以指示写入磁盘时字符串的大小。

    注意

    写入磁盘时,将截断包含超过 属性所指定 VBFixedString 字节数的字符串字段,

二进制模式

对于在模式下 Binary 打开的文件,大多数 Random 模式规则都适用,但有一些例外情况。 在模式下打开 Binary 的文件的以下规则不同于模式规则 Random

  • RecordLength函数中的 FileOpen 子句不起作用。 FilePut 将所有变量连续写入磁盘,也就是说,在记录之间不填充。

  • 对于结构中数组以外的任何数组, FilePut 仅写入数据。 未编写描述符。

  • FilePut 写入不带两字节长度描述符的结构元素的可变长度字符串。 写入的字节数等于字符串中的字符数。 例如,以下语句将 11 个字节写入文件 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • 使用 FilePut 函数写入文件需要 WriteFileIOPermissionAccess 枚举访问。

另请参阅

适用于