📄 untitled-05.txt
字号:
UINT nBytesRead= file.Read(buffer, sizeof(buffer》;
dwBytaSRSSSifliflg= flBytflSRSSd;
8
未读字节数保存在 dwBytesRemaining中,它的初始值为 CFile:: GetLength返回的文件尺寸。
每次调用Read后,dwBytesRemaining都要减去从文件读取的字节数(nBytesRead)。执行while
循环直到dwBytesRemaining变成0。
下面的示例是在前段代码的基础上发展的,它调用:: CharlnwerBuff将从文件中读取的
所有大写字符转化成小写,并调用 CFile:: Write把转化后的正文写回文件。为了使程序清
晰,再次省略错误检查。
BYTE bEffEE[0EIO00」;
CFlle file(_T(”File.txt”), CF。ie::modeReadwr。ie);
DWORD dwBytesRelnaining= file.GetLength();
wb。ie(dwBytesRe。aming) 1
DWORD dwPosition= file.GetPosition();
UINT nByteSRead= file.Read(buffer, SIZeof(bllffer》;
::CharLowerBuff《LPTSTR)burfer, "Byte。Read);
file.Seek(dwPosition, CF土ie::begin);
file.W。lie(buffer, nBytesRead);
dw sytaSRSmS主fi土fig-=flBy〔flSRSSd;
S
该示例调用CFile函数GetPosition和Seek操作文件指针——文件中的偏移值,即执行下一个
读或写的位置——使修改后的数据覆盖原文件。Seek用第二个参数确定第一个参数中的字
节偏移值是相对于文件起始位置( CFile:: begin)、结束位置(CFile:: end)还是当前位置
( CFile:: current)。如果要快速定位到文件的开始位置或结束位置,可以调用 CFile:: SeekTo.
Begin或 CFile:: SeekToEnd。
如果在文件1/O过程中有错误发生,Read、Write和其他CFile函数就会发送一个CFile-
Exception。CFileException::m-cause告诉您引发错误的原因。例如:试图往已满的磁盘上写
文件会引发 CFileException,其 m。ause等于 CFileException:: diskFull。试图在文件范围之外
读取数据会引发CFileException,其。cause等于CFileException::endofFile。下面就是将小写
正文转化为大写的例程,其中还包括检查代码:
BYTE b。ffer[0xl000];
try
CFile file(_T(”F。ie.txt”), CF。ie::。odeReadwr。ie);
DWORD dwBytesRemaining= file.GetLenqth();
wb。ie(dwBytesRe。a。mug)页
DWORD dwPosition= file,GetPosition();
—I1一了厂工7nBy?二二e主主宁1三己eed=f1】e.—e占台一<己(b u三三fer,SIZe。至三(b u正三fel》;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -