📄 subject_36304.htm
字号:
<p>
序号:36304 发表者:lijianxu 发表日期:2003-04-14 09:51:10
<br>主题:读文件和对话框的问题
<br>内容: 文件操作方面的问题和打开对话框的问题<BR>CString FileName;<BR> char *buffer="";<BR> CFileDialog file(TRUE);<BR> CString FilePathName;<BR> if(file.DoModal()==IDOK)<BR> FilePathName=file.GetPathName();<BR> CFile cfile;<BR> cfile.Open(FilePathName,Cfile::modeCreate|Cfile::modeWrite,NULL);<BR> cfile.Read(buffer,1024);//程序运行到这里就发生ASSERT错误,请指出<BR>还有:<BR> CString szFileter="All files (*.*)|*.*|Text files(*.txt)|*.txt"; <BR> file.m_ofn.lpstrFilter=szFileter;<BR> 在打开对话框中的过滤字符串是“All files (*.*)|*.*|Text files(*.txt)|*.txt”是不是我格式写错了?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:擎天柱 回复日期:2003-04-14 10:12:03
<br>内容:FilePathName文件很可能小于1k
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijianxu 回复日期:2003-04-14 10:30:48
<br>内容:文件的大小和read(,count)有关吗?还有如果我的文件比较大,那个count数值该怎么设置
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:wangwt 回复日期:2003-04-14 10:47:52
<br>内容:如果你是读文本文件,我建议你用CFile的派生类CStdioFile<BR>它的ReadString(),用来一次读一行。你可能这样用<BR>CString str;<BR>while(ReadString(str))<BR>{<BR>.....<BR>}<BR><BR>cfile.Read(buffer,1024);<BR>1024指的是读取文件的字节数,你每次读1024个字节时,能保证它是你要读一次的长度吗?<BR><BR>滤字符串是“All files (*.*)|*.*|Text files(*.txt)|*.txt”是不是我格式写错了?<BR><BR>在最后加一个"|".-----“All files (*.*)|*.*|Text files(*.txt)|*.txt|”<BR><BR><BR>还有我个人认为文件小于1K,并不是出问题的原因
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijianxu 回复日期:2003-04-14 12:02:57
<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>
回复者:lijianxu 回复日期:2003-04-14 12:41:12
<br>内容:我发现它读得不正确,怎么办,比如说我有这么几句话:<BR>ffffffff<BR>fffffff<BR><BR><BR>ffffffffffffffffffffffffffff<BR><BR><BR><BR>ggggggggggggggg<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-04-14 12:46:33
<br>内容:cfile.Read(buffer,cfile.GetLength());
<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-04-14 12:47:49
<br>内容:还有char *buffer="";<BR>这开了一个字节的空间,所以会出错<BR>最好是<BR>char *buffer = new char[cfile.GetLength()];
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijianxu 回复日期:2003-04-14 13:37:41
<br>内容:能帮我解决一下过滤器的问题吗?<BR>如果我用cstdiofile的readstring方法该如何实现上述问题,我用readstring读的话他们是连在句上的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lijianxu 回复日期:2003-04-14 14:06:54
<br>内容:我发现cfile.GetLength()这个函数获得的不是文件的大小啊,<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-04-14 14:21:43
<br>内容:很明显的错误呀:后面是读,但是文件的打开模式是写呀(modeWrite)应该改成:modeRead就一切OK了:)改为如下:<BR> CString FileName;<BR> char *buffer=new char[1024];<BR> <BR> CFileDialog file(TRUE);<BR> CString FilePathName;<BR> if(file.DoModal()==IDOK)<BR> FilePathName=file.GetPathName();<BR> CFile cfile;<BR> cfile.Open(FilePathName,CFile::modeCreate|CFile::modeRead,NULL);<BR> cfile.Read(buffer,1024);<BR> cfile.Close();<BR> delete buffer;<BR>文件过滤字符内容为:char *filter="显示的内容1|(通配符1)|显示内容2|(通配符2)|....<BR>|",最后必须加上"|".<BR>2003-4-14 14:28:04
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -