?? 01_9_17_18.asp.html
字號:
<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>計算機世界網-3.3.3 與文件處理關系密切的類CFile</TITLE></HEAD>
<style>
.a14{font-size:14px;text-indent:25px;line-height:20px}
.f{font-size:18px;color=#0f3ccd}
img{border:0px;}
td,p,input{font-fammily:verdana,宋體;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>
<center>
<BODY topmargin=2 leftmargin=0>
<style>
.v12{font-size:10pt;color:"#ffffff";FONT-WEIGHT: bold}
.v14{font-size:14px;text-indent:25px;line-height:20px}
img{border:0px;}
td,p,input,select{font-fammily:verdana,宋體;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>
<style>
.v13{font-size:10pt;color:"#ffffff";FONT-WEIGHT: bold}
.v12{font-size:13px;color:"#4C029C";FONT-WEIGHT: bold}
.v14{font-size:14px;text-indent:25px;line-height:20px}
img{border:0px;}
td,p,input,select{font-fammily:verdana,宋體;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>
<!--頭-->
<table align=center cellpadding="0" cellspacing="0" border="0" width="767">
<tr><td valign=bottom>
<table cellpadding="0" cellspacing="0" border=0>
<tr><td valign=top><img src="../../../../../center/image/ccwlogo.gif"></td></tr>
<tr><td height="27" valign=top><img src="../../../../../center/image/knowledge.gif" width="207" height="27"></td></tr>
</table></td>
<td valign=bottom width=556 bgcolor="#4c029c" height=96>
<table cellpadding="0" cellspacing="0" border=0 width=556 bgcolor="#4c029c" height=96>
<tr><td height=25 valign=bottom bgcolor="#ffffff" colspan=2 ><img src="../../../../../image2002/top.gif" usemap="#F"></td></tr>
<tr valign=middle >
<td align=center valign=middle height="60" align=center>
<!-- <a href="http://www.ccw.com.cn/search/" target=_blank><img src="../../../../../img2/esearch.GIF" border=0 width=468 height=60></a> --><a href="http://www.ccw.com.cn/html/search/thememail/" target=_blank><img src="../../../../../img2/topbanner_thememail.GIF" border=0 width=468 height=60></a>
</td>
<td align=center width=15%>
<table width=95%>
<tr><td><a href="mailto:center@ccw.com.cn?subject=我要投稿:" target=_blank><font class=v13>我要投稿</a><br><a href="mailto:center@ccw.com.cn?subject=編讀往來"><font class=v13>編讀往來</a><br><a href="javascript:AddBookMark('計算機世界網首頁')"><font class=v13>加入收藏</a></font></td></tr>
</table>
</td>
</tr>
<tr><td bgcolor="#ffffff" height=1 colspan=2 ></td></tr>
<tr><td bgcolor="#b4aafc" height=2 colspan=2 ></td></tr></table>
<map name="F">
<area href="http://www.ccw.com.cn/" shape="rect" coords="29, 3, 61, 18" target=_blank>
<area href="http://www.ccw.com.cn/news1/" shape="rect" coords="72, 3, 143, 18" target=_blank>
<area href="http://www.ccw.com.cn/center/" shape="rect" coords="155, 2, 216, 18" target=_blank>
<area href="http://www.ccw.com.cn/work/" shape="rect" coords="225, 2, 299, 18" target=_blank>
<area href="http://www.ccw.com.cn/search/" shape="rect" coords="310, 3, 364, 19" target=_blank>
<area href="http://www3.ccw.com.cn/" shape="rect" coords="372, 2, 412, 19" target=_blank>
<area href="http://www2.ccw.com.cn/" shape="rect" coords="424, 2, 550, 18" target=_blank></map>
</td></tr>
<tr><td colspan=2 bgcolor="#b4aafc">
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr>
<td width=26% align=center><font class=v12>【2003年6月24日】 </font></td>
<td CLASS=V12> <a href="http://www.ccw.com.cn/center/topic.asp">專 題</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/tech.asp">技 術</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/prod.asp">產 品</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/app.asp">應 用</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/net.asp">網 絡</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/prog.asp">編 程</a> /</td>
<td CLASS=V12><a href="http://www.ccw.com.cn/center/skill.asp">技 巧</a> </td>
</tr>
</table>
</td></tr>
</table>
<table align=center width=728>
<tr><td align=center><br><h2><font color='#0f3ccd'>3.3.3 與文件處理關系密切的類CFile</font></h2>
</td></tr><tr><td align=right>01-9-17 上午 11:02:19<br><hr size=1 width=718 color=#f46240></td></tr></table><br>
<table align=center width=728><tr><td valign=top width=600>
<table width=100% ><tr><td class=a14>CFile類用來處理正常文件的I/O操作,它直接供無緩沖的、二進制磁盤輸入/輸出服務,并且通過其派生類間接支持文本文件和內存文件。因為CFile類是基本上封裝在CArchive類之中了,所以我們只對這個類作簡單介紹。</td></tr></table><table width=100% ><tr><td class=a14>
CFile類有三個構造函數,其原型如圖所示。</td></tr></table><table width=100% ><tr><td class=a14>
virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, </td></tr></table><table width=100% ><tr><td class=a14>
CFileException* pError = NULL )</td></tr></table><table width=100% ><tr><td class=a14>
其中:hFile為一個已打開文件的句柄。LpszFileName指定所想要文件的路徑的字符串。路徑可以是相對的或絕對的。NOpenFlags指共享和存取方式,對于這個標志的說明,我們留到后面專門說明。</td></tr></table><table width=100% ><tr><td class=a14>
CFile類用Open來創建和打開文件。使用Open創建新文件,必須有一個文件名,并且選擇一定的打開方式:</td></tr></table><table width=100% ><tr><td class=a14>
CFile對磁盤文件的定點讀和寫是通過函數Read ,Write和Seek進行的。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
virtual UINT Read( void* lpBuf, UINT nCount );</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
virtual void Write( const void* lpBuf, UINT nCount );</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
virtual LONG Seek( LONG lOff, UINT nFrom );</td></tr></table><table width=100% ><tr><td class=a14>
函數Read:返回傳輸給緩沖區的字節數。如果讀到文件尾,返回值可能小于nCount 值。LpBuf:指向用戶定義的緩沖區的指針,用來接收數據;nCount:要從文件中讀出的最大字節數;函數Write:寫緩沖區數據到文件中;Seek用于定位文件指針位置,如果所請求的位置合法,則返回距離文件頭的新字節偏移。</td></tr></table><table width=100% ><tr><td class=a14>
文件的打開和關閉是相對的,打開一個文件之后,必須把它關閉,文件的關閉是相當簡單的,用CFile對象調用Close函數即可。</td></tr></table><table width=100% ><tr><td class=a14>
下面描述文件共享和存取標志。下列標志指定打開文件時可執行的動作。可以用OR來組合下面所列的選項。一個存取許可和一個共享選項是必需的;modeCreate 和modeNoInberit方式是可選的。</td></tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> modeCreate指示構造函數創建一個新文件,如果該文件已存在,則該文件截短為0。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> modeRead 打開文件用于讀。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> modeReadWrite 打開文件用于讀寫。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> modeWrite 打開文件用于只寫。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> modeNoInberit 阻止文件被子進程繼承。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> shareDenyNone 打開文件,不允許其它進程讀或寫該文件。如果該文件已由其它任何進程用兼容方式打開,則Create將失敗。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> shareDenyWrite 打開文件,不允許其它進程寫該文件。如果該文件已由其它任何進程用兼容方式或寫方式打開,則Create將失敗。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> shareDenyRead 打開文件,不允許其它進程讀該文件。如果該文件已由其它任何進程用兼容方式或讀方式打開,則Create將失敗。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> shareExclusive 以獨占方式打開文件,不允許其它進程寫該文件。如果該文件已用其它讀或寫方式打開,即使是當前進程打開,則構造也將失敗。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> shareCompat 以兼容方式打開文件,允許給定機器上任何進程打開該文件任意次。如果該文件已用其它任何共享方式打開,構造將失敗。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> typeText 設置文本方式,對回車換行進行特殊處理,它只用于派生類。</li>
</ul>
</td>
</tr></table><table width=100% >
<tr>
<td class=a14>
<ul>
<li> typeBinary 設置二進制方式,它只用于派生類。</li>
</ul>
</td>
</tr>
</table><br>
<style>.a1{font-size:1}</style>
<table width=100% ><tr><td align=right>(網頁編輯:<a href='mailto:liu_yang@ccw.com.cn'>風之翼</a>)</td></tr></table>
</td><td class=a1 bgcolor=#f46240> </td>
<td valign=top width=138 align=right><table width=98% ><tr><td>
<form action='/app/gsearch1.asp' name=pdn><table width=100% ><tr><td>應用與方案
頻道全文檢索</td></tr>
<tr><td><input type="text" name="textfile" size=15 value=頻道內檢索 onfocus="this.value=''">
<input border=0 src="../../../../../images/jian.gif" name="I1" type="image" align=absmiddle>
</td></tr>
</table>
</form>
<form name=srch action="/search/which.asp" method=post onsubmit="JavaScript:return chk()">
<table width=100% >
<tr><td><select size="1" name="func">
<option selected value="2">主題檢索</option>
<option value="1">周報全文檢索</option>
<option value="3">模糊詞檢索</option>
</select></td></tr>
<tr><td><input type="text" name="SrchStr" size=15 value="輸入待檢索的詞"
onfocus="this.value=''">
<input src="../../../../../images/jian.gif" name="I1" type="image" align="absMiddle" border=0>
</td></tr>
</table>
<script language="JavaScript">
function chk()
{if (!document.srch.SrchStr.value){
alert("請輸入需檢索的詞!");
document.srch.SrchStr.focus();
return false;
}
else{if (document.srch.SrchStr.value.length>30){
alert("檢索的詞請不要超過30個字符!");
document.srch.SrchStr.focus();
return false;
}
}
}
</script></form>
<table width=100% ><tr><td class=f colspan=2><b>相關文章</b></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='../jiqiao/01_9_17_11.asp.html'>在 Visual C++ 中 建 立 MFC 擴 展 DLL</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_17_17.asp.html'>3.3.2 實例分析</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='../jiqiao/01_9_17_10.asp.html'>利用MFC實現對象拖放</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_17_16.asp.html'>3.3.1 對象持續化簡述</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='../jiqiao/01_9_17_9.asp.html'>對象的改造技巧</a></td></tr>
</table>
</td></tr></table></td></tr></table><br>
<table align=center width=680><tr><td align=right>
<form name=mail method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='24310'>
您的姓名:<INPUT type="text" name=myName size=10>
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>
<INPUT type="submit" value="推薦給好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">關閉窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">
function chkField(fmObj)
{if (!fmObj.friendMail.value){
alert("請輸入您朋友的E-mail!");
fmObj.friendMail.focus();
return false;
}
return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中國計算機世界出版服務公司版權所有</b></p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -