点击或拖拽改变大小

Functions.FRead 方法

X#
从文件中读取字符到通过引用传递的缓冲区变量中。

命名空间:  XSharp.Core
程序集:  XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法
 FUNCTION FRead(
	ptrHandle AS IntPtr,
	cBufferVar REF STRING,
	dwBytes AS DWORD
) AS DWORD
查看代码

参数

ptrHandle
类型:IntPtr
要读取的文件句柄。
cBufferVar
类型:String
用于存储从指定文件读取的数据的变量。
如果 cBufferVar 的长度小于 dwBytes,则会分配一个新的字符串,其长度为 dwBytes 和文件中剩余字节数的最小值。cBufferVar 必须通过引用传递,因此必须在前面加上引用传递运算符 (@)。
dwBytes
类型:UInt32
要读入缓冲区的字节数。

返回值

类型:UInt32
成功读取的字节数。
返回值小于 dwBytes 或为 0 表示已到达文件末尾或发生其他读取错误。可以使用 FError() 确定具体错误。
备注
FRead() 从当前 DOS 文件指针位置开始读取,并将文件指针前进读取的字节数。
所有字符都会被读取,包括控制字符、空字符和高位字符(高于 Chr(127))。 FRead() 在某些方面类似于 FReadStr() 和 FSeek()。FReadStr() 从文件中读取指定数量的字节,直到遇到下一个空字符(Chr(0))。FSeek() 移动文件指针但不进行读取。 此函数假定处理原始二进制数据,不依赖于 SetAnsi() 的状态。相比之下,FReadText() 和 FRead4() 依赖于 SetAnsi()。
示例
此示例在成功打开文件后使用 FRead() 将 128 个字节读入缓冲区:
X#
 1DEFINE F_BLOCK := 128
 2...
 3cBuffer := Space(F_BLOCK)
 4ptrHandle := FOpen2("temp.txt", FO_READ)
 5IF FError() != 0
 6    ? DOSErrString(FError())
 7ELSE
 8    IF FRead(ptrHandle, @cBuffer, F_BLOCK) <paramref name="" /> F_BLOCK
 9        ? DOSErrString(FError())
10    ENDIF
11    FClose(ptrHandle)
12ENDIF
参见