CTextFile:一个方便的助手






4.62/5 (27投票s)
一个用于读取、写入和追加文本文件的小助手类。
引言
虽然这个类可能不是最令人印象深刻的,但它至少很有用。它允许您从 CString
或 CStringArray
读取、写入和追加文本文件,还可以加载和保存到列表框和编辑框。虽然它不足以管理应用程序中的数据,但可用于配置文件、开发过程中的文本转储以及其他此类小任务。而且——如果您在任何成员调用中没有提供文件名,它会弹出一个文件对话框。
使用代码
实例化一个 CTextFile
然后开始使用吧!这是一个例子
CString str(""); CTextFile tf("gnu"); if( !tf.Save( str, m_editLoad ) ) if( str.GetLength() ) AfxMessageBox( tf.GetErrorMessage() );
它保存了编辑框 m_edit
的内容。由于 str
(文件名)是空的,CTextFile
将显示一个文件对话框,并且在返回时 str
将包含选定的文件名。
在构造函数中,可以指定扩展名和行结束符。扩展名默认为 "",行结束符默认为 "\r\n"。当显示标准文件对话框时,扩展名将用于过滤文件。对行结束符有限的支持包括将文件读取到单个 CString
,以及将 CStringArray
写入文件。
CTextFile::CTextFile( const CString& ext, const CString& eol )
构造函数。
ext
可以包含默认扩展名(例如 "txt"),eol
可以包含行结束符(例如 "\n")。ext
默认为 "",eol
默认为 "\r\n"。BOOL CTextFile::ReadTextFile( CString& filename, CStringArray& contents )
将文件
filename
的内容逐行读入CStringArray
contents
。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::ReadTextFile( CString& filename, CString& contents )
将文件
filename
的内容读入contents
。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::WriteTextFile( CString& filename, const CStringArray& contents )
将
contents
写入filename
。如果文件不存在,则创建文件;否则,则覆盖它。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::WriteTextFile( CString& filename, const CString& contents )
将
contents
写入filename
。如果文件不存在,则创建文件;否则,则覆盖它。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::AppendFile( CString& filename, const CString& contents )
将
contents
追加到filename
。如果文件不存在,则创建文件。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。AppendFile
不会添加行结束符。BOOL CTextFile::AppendFile( CString& filename, const CStringArray& contents )
将
contents
追加到filename
。如果文件不存在,则创建文件。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::Load( CString& filename, CEdit* edit )
将文本文件
filename
加载到edit
。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。不会进行行结束符的翻译。BOOL CTextFile::Load( CString& filename, CListBox* list )
将文本文件
filename
加载到list
。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。BOOL CTextFile::Save( CString& filename, CEdit* edit )
将
edit
的内容保存到文件filename
。文件将被创建或覆盖。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。请注意,将使用编辑框中的行结束符。BOOL CTextFile::Save( CString& filename, CListBox* list )
将
list
的内容保存到文件filename
。文件将被创建或覆盖。如果
filename
为空,将显示标准文件对话框,并且——如果选择 "确定"——在返回时filename
将包含选定的文件名。CString CTextFile::GetErrorMessage()
检索错误消息。在任何返回
FALSE
的文件操作以及文件名不为空的情况下都应调用此函数。
关注点
我必须承认,根本没有什么。这个类真的很容易拼凑起来,但在其早期版本中它已经节省了我大量的时间。
历史
- 2004/03/22 - 初始版本。
- 2005/05/25 - 修正了
CTextFile::GetFilename
中的一个错误,即过滤器字符串的创建。