将数据从缓冲区写入文件
语法
用法
Put #filenum , position , data [, amount ]
varres = Put (#filenum , position , data [, amount ])
参数
filenum
position
是必须在文件中启动Put的位置。如果文件已打开For Random,则该位置在记录中,否则以字节为单位。如果省略,则从当前文件指针位置开始写入。位置是1:即文件的第一个记录或字节位于1.
如果省略position 或零(0),文件写入将从当前文件位置开始。
data
是写入数据的缓冲区。它可以是数字变量,字符串,数组或用户定义的类型。除非提供
amount ,否则操作将尝试将完整的变量传输到磁盘。
当放置数组时,
data 后面应该有一个空的方括号:'
()'。
Put将写入数组中的所有数据。
amount 不允许。
当放置
String时,写入的字节数与字符串数据中的字节数相同。
amount 不允许。
注意:如果要从缓冲区中写入值,则不应将指针传递给缓冲区;而是应该在缓冲区中传递第一个变量。(这可以通过使用
操作符 * (Value Of)取消引用指针来完成。)如果直接传递指针,则
Put会将内存从指针变量放入,而不是其指向的内存。
amount
将
Put写入文件
amount 个文件的连续变量,即它从
data 的内存中写入
( amount * SizeOf(data ) )个数据字节到文件中。如果省略
amount ,则默认为
1,这意味着
Put只写入单个变量。
返回值
0成功;非零的错误。“disk full”被认为是错误,并返回代码3.之前写的“确切的”数据是不可用的,而且也不会真的有用。
说明
将二进制数据从缓冲区变量写入以
Binary或
Random模式打开的文件。
Put可以作为一个功能使用,并且将成功返回
0或失败时的错误代码。
对于以
Random模式打开的文件,要写入的数据的大小(以字节为单位)必须与指定的记录大小相匹配。
例子
'为文件编号创建变量和要放置的数字
Dim As Integer f
Dim As Long value
'找到第一个免费文件号
f = FreeFile()
'打开文件“file.ext”进行二进制使用,使用文件号“f”
Open "file.ext" For Binary As #f
value= 10
' Write the bytes of the integer 'value'进入文件,使用文件号“f”
'从文件开始(位置1)
Put #f, 1, value
'关闭文件
Close #f
'创建一个整数数组
Dim buffer(1 To 10) As Integer
For i As Integer = 1 To 10
buffer(i) = i
Next
'找到第一个免费的文件文件编号
Dim f As Integer
f = FreeFile()
'打开文件“file.ext”进行二进制使用,使用文件号“f”
Open "file.ext" For Binary As #f
'将数组写入文件,使用文件号“f”
'从文件开始(位置1)
Put #f, 1, buffer()
'关闭文件
Close #f
例子
Dim As Byte Ptr lpBuffer
Dim As Integer hFile, Counter, Size
Size = 256
lpBuffer = Allocate(Size)
For Counter = 0 To Size-1
lpBuffer[Counter] = (Counter And &HFF)
Next
'获取免费的文件文件编号
hFile = FreeFile()
'以二进制写入模式打开文件“test.bin”
Open "TEST.bin,烧写" For Binary Access Write As #hFile
'从lpBuffer指向的内存中写入256个字节
Put #hFile, , lpBuffer[0], Size
'关闭文件
Close #hFile
'释放赋值的内存
Deallocate lpBuffer
与QB差别
- 放可以像VB一样编写完整的数组,或者写入buffer 的内存位置的数据大小的倍数。
- 放可以用作FB中的函数,以查找返回的成功/错误代码,而无需使用错误处理过程。
参考