⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_53206.htm

📁 vc
💻 HTM
字号:
<p>
序号:53206 发表者:foif 发表日期:2003-09-18 09:29:03
<br>主题:windows98下读文件的大小受限,请教
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;int filelength;<BR>&nbsp;&nbsp;&nbsp;&nbsp;char buffer[921600];<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFile MyFile;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString Filename,linshi;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileDialog dlg(TRUE,_T(&#34;dat&#34;),_T(&#34;数据.dat&#34;),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(&#34;*.dat|*.dat|*.txt|*.txt|&#34;));<BR>&nbsp;&nbsp;&nbsp;&nbsp;dlg.DoModal();<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Filename=dlg.GetFileTitle();<BR>&nbsp;&nbsp;&nbsp;&nbsp;MyFile.Open(dlg.GetFileName(),CFile::modeRead);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filelength=MyFile.GetLength();<BR>&nbsp;&nbsp;&nbsp;&nbsp;MyFile.Read(buffer,filelength);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_strReceive=buffer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyFile.Close();<BR>请教:我能不能根所文件的大小来确定buffer的大小,现在的这个写法在98下读的文件大小受限制,不能满足要求。我该如何改呢。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:ShaGua 回复日期:2003-09-18 09:36:54
<br>内容:使用ReadHuge代替Read
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:foif 回复日期:2003-09-18 09:49:48
<br>内容:我是不是一定要在开头处把char buffer[大小],定到最大呢。如果我用char *buffer;该怎么用;有没有其它的办法。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ShaGua 回复日期:2003-09-18 09:57:21
<br>内容:应该设置成需要读的大小,在这里也就是文件的大小。<BR>因为MyFile.Read(buffer,filelength);明确是读了整个文件。<BR><BR>使用char *buffer的时候,需要分配内存。使用new/delete<BR><BR>不过看好像存在问题。<BR>文件名是.dat和.txt,是否是文本格式。<BR>如果是的话,不要这样读文件。<BR><BR>这样的方法是用于二进制文件的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:foif 回复日期:2003-09-18 10:12:32
<br>内容:那我应该用什么办法呢?看来看去,只有这种方法最简单了。<BR>我用char *buffer;<BR>buffer=new(char);<BR>delete buffer;<BR>总是会内存问题。异常错误。<BR><BR>能否提示一个好的读文件的办法。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ShaGua 回复日期:2003-09-18 10:42:28
<br>内容:这应该是动态读数据的比较适合的方法了。<BR><BR>错误是new/delete使用方法不正确。看一下C++的书。<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:逸亭 回复日期:2003-09-18 11:31:13
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;int filelength;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFile MyFile;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString Filename,linshi;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileDialog dlg(TRUE,_T(&#34;dat&#34;),_T(&#34;数据.dat&#34;),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(&#34;*.dat|*.dat|*.txt|*.txt|&#34;));<BR>&nbsp;&nbsp;&nbsp;&nbsp;dlg.DoModal();<BR>&nbsp;&nbsp;&nbsp;&nbsp;Filename=dlg.GetFileTitle();<BR>&nbsp;&nbsp;&nbsp;&nbsp;MyFile.Open(dlg.GetFileName(),CFile::modeRead);<BR>&nbsp;&nbsp;&nbsp;&nbsp;filelength=MyFile.GetLength();<BR>char buffer[filelength+1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;MyFile.Read(buffer,filelength);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_strReceive=buffer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MyFile.Close();<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ShaGua 回复日期:2003-09-18 11:38:20
<br>内容:char buffer[filelength+1];<BR>应该编译通不过。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:逸亭 回复日期:2003-09-18 13:05:09
<br>内容:可以吧,我用过的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ShaGua 回复日期:2003-09-18 13:12:44
<br>内容:那可以把你的编译器给我一个吗?我正需要。<BR>先谢谢了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:foif 回复日期:2003-09-18 14:04:00
<br>内容:&lt;BLOCKQUOTE&gt;引用“第7楼”所言<BR>&lt;Q&gt;char buffer[filelength+1];&nbsp;&nbsp;应该编译通不过。&lt;/Q&gt;&lt;/BLOCKQUOTE&gt;<BR>我试了,通不过。<BR>我用指针分配内存与定义数组是一样的,也要先定义最大的内存量,不能通过使用<BR>char buffer=new char[filelength+1];完成,打开时会出现异常错误,<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:muzi 回复日期:2003-09-20 12:48:41
<br>内容:关注中。。。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:逸亭 回复日期:2003-09-21 10:19:53
<br>内容:char buffer=new char[filelength+1];<BR>delete buffer;<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -