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

📄 textfile.cpp

📁 uml编辑器很牛
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	Return :		BOOL					-	"TRUE" if OK. 
												"GetErrorMessage "
												will return 
												errors
	Parameters :	CString& filename		-	file to write to
					CStringArray contents	-	contents to write

	Usage :			Call to append the contents of a 
					CStringArray to a textfile.
   ============================================================*/
{

	CStdioFile file;
	CFileException feError;
	BOOL result = TRUE;

	if( filename.IsEmpty() )
		result = GetFilename( TRUE, filename );

	if( result )
	{
		// Write the file
		if( file.Open( filename, CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate, &feError ) )
		{

			file.SeekToEnd();

			int max = contents.GetSize();
			for( int t = 0 ; t < max ; t++ )
				file.WriteString( contents[ t ] + m_eol );

			file.Close();

		}
		else
		{

			// Set error message
			TCHAR	errBuff[256];
			feError.GetErrorMessage( errBuff, 256 );
			m_error = errBuff;
			result = FALSE;

		}
	}

	return result;

}

////////////////////////////////////////
// Window operations
//

BOOL CTextFile::Load( CString& filename, CEdit* edit )
/* ============================================================
	Function :		CTextFile::Load
	Description :	Loads a text file from "filename" to the 
					"CEdit" "edit".
					If "filename" is empty, the standard file 
					dialog will be displayed, and - if OK is 
					selected - "filename" will contain the 
					selected filename on return.
					No translation of eols will be made.
	Access :		Public

	Return :		BOOL				-	"FALSE" if failure. 
											"GetErrorMessage" will 
											return the error.
	Parameters :	CString& filename	-	name of file to load
					CEdit* edit			-	pointer to "CEdit" to 
											set text to

 	Usage :			Call to load the contents of a text file 
					to an editbox.

  ============================================================*/
{
	BOOL result = FALSE;

	// Error checking
	if( ValidParam( edit ) )
	{
		CString contents;
		if( ReadTextFile( filename, contents ) )
		{

			edit->SetWindowText( contents );
			result = TRUE;

		}
	}

	return result;

}

BOOL CTextFile::Load( CString& filename, CListBox* list )
/* ============================================================
	Function :		CTextFile::Load
	Description :	Loads a text file from "filename" to the 
					"CListBox" "list".
					If "filename" is empty, the standard file 
					dialog will be displayed, and - if OK is 
					selected - "filename" will contain the 
					selected filename on return.
	Access :		Public

	Return :		BOOL				-	"FALSE" if failure. 
											"GetErrorMessage" will 
											return the error.
	Parameters :	CString& filename	-	name of file to load
					CListBox* list		-	pointer to "CListBox" 
											to set text to

	Usage :			Call to load the contents of a texfile to a 
					listbox.
   ============================================================*/
{
	BOOL result = FALSE;

	// Error checking
	if( ValidParam( list ) )
	{

		// Read the file
		CStringArray contents;
		if( ReadTextFile( filename, contents ) )
		{

			// Set to listbox
			int max = contents.GetSize();
			for( int t = 0 ; t < max ; t++ )
				if( contents[ t ].GetLength() )
					list->AddString( contents[ t ] );
			result = TRUE;

		}

	}

	return result;

}

BOOL CTextFile::Save( CString& filename, CEdit* edit )
/* ============================================================
	Function :		CTextFile::Save
	Description :	Saves the contents of the "CEdit" "edit" to the 
					file "filename". The file will be created or 
					overwritten.
					If "filename" is empty, the standard file 
					dialog will be displayed, and - if OK is 
					selected - "filename" will contain the 
					selected filename on return.
					Note that the eol-markers from the editbox
					will be used.
	Access :		Public

	Return :		BOOL				-	"FALSE" if failure. 
											"GetErrorMessage" will 
											return the error.
	Parameters :	CString& filename	-	name of file to save 
											to. Will be 
											overwritten
					CEdit* edit			-	pointer to "CEdit" to 
											get text from

	Usage :			Call to save the contents of an editbox to 
					a text file.
   ============================================================*/
{
	BOOL result = FALSE;

	// Error checking
	if( ValidParam( edit ) )
	{

		// Get text
		CString contents;
		edit->GetWindowText( contents );

		// Write file
		if( WriteTextFile( filename, contents ) )
			result = TRUE;

	}

	return result;

}

BOOL CTextFile::Save( CString& filename, CListBox* list )
/* ============================================================
	Function :		CTextFile::Save
	Description :	Saves the contents of the "CListBox" "list" to 
					the file "filename". The file will be created 
					or overwritten.
					If "filename" is empty, the standard file 
					dialog will be displayed, and - if OK is 
					selected - "filename" will contain the 
					selected filename on return.
	Access :		Public
					
	Return :		BOOL				-	"FALSE" if failure. 
											"GetErrorMessage" will 
											return the error.
	Parameters :	CString& filename	-	name of file to save 
											to. Will be 
											overwritten
					CListBox* list		-	pointer to "CListBox" 
											to get text from

	Usage :			Call to save the contents of a listbox to a 
					file.

   ============================================================*/
{
	BOOL result = FALSE;

	// Error checking
	if( ValidParam( list ) )
	{

		// Get listbox contents
		CStringArray contents;
		int max = list->GetCount();
		for( int t = 0; t < max ; t++ )
		{

			CString line;
			list->GetText( t, line );
			contents.Add( line );

		}

		// Write file
		if( WriteTextFile( filename, contents ) )
			result = TRUE;

	}

	return result;

}

////////////////////////////////////////
// Error handling
//

CString CTextFile::GetErrorMessage()
/* ============================================================
	Function :		CTextFile::GetErrorMessage
	Description :	Gets the error message. Should be called
					if any of the file operations return
					"FALSE" and the file name is not 
					empty.
	Access :		Public

	Return :		CString	-	The current error string
	Parameters :	none

	Usage :			Call to get the current error message.

   ============================================================*/
{

	return m_error;

}

////////////////////////////////////////
// Private functions
//

void CTextFile::ClearError()
/* ============================================================
	Function :		CTextFile::ClearError
	Description :	Clears the internal error string. Should 
					be called first by all functions setting 
					the error message string.
	Access :		Private

	Return :		void
	Parameters :	none

	Usage :			Call to clear the internal error string.

   ============================================================*/
{

	m_error = _T( "" );

}

BOOL CTextFile::ValidParam( CWnd* wnd )
/* ============================================================
	Function :		CTextFile::ValidParam
	Description :	Used to check parameters of the Save/Load
					functions. The pointer to the window must 
					be valid and the window itself must exist.
	Access :		Private
					
	Return :		BOOL			-	"FALSE" if any parameter 
										was invalid
	Parameters :	CWnd* wnd		-	a window pointer, that 
										must be valid, to a 
										window

	Usage :			Call to check the validity of the feedback 
					window.
   ============================================================*/
{

	ClearError();
	BOOL result = TRUE;

	if( wnd == NULL )
	{

		ASSERT( FALSE );
		result = FALSE;

	}

	if( !IsWindow( wnd->m_hWnd ) )
	{

		ASSERT( FALSE );
		result = FALSE;

	}

	if( !result )
		m_error = "Bad Window handle as parameter";

	return result;

}

BOOL CTextFile::GetFilename( BOOL save, CString& filename )
/* ============================================================
	Function :		CTextFile::GetFilename
	Description :	The function will display a standard file 
					dialog. If the instance is created with an 
					extension, the extension will be used to 
					filter files.
	Access :		Protected
					
	Return :		BOOL				-	"TRUE" if a file was 
											selected
	Parameters :	BOOL save			-	"TRUE" if the file 
											should be saved.
					CString& filename	-	Placeholder for the 
											selected filename

	Usage :			Call to display the standard file dialog.

   ============================================================*/
{
	CString filter;
	CString extension = GetExtension();
	if( extension.GetLength() )
		filter = extension + _T( "-files (*." + extension + ")|*." ) + extension + _T( "|All Files (*.*)|*.*||" );

	BOOL result = FALSE;
	CFileDialog dlg( !save, extension, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter );

	if( dlg.DoModal() == IDOK )
	{
		filename = dlg.GetPathName();
		result = TRUE;
	}

	return result;

}

CString CTextFile::GetExtension()
/* ============================================================
	Function :		CTextFile::GetExtension
	Description :	An accessor for the "m_extension" field.
	Access :		Protected
					
	Return :		CString	-	the extension.
	Parameters :	none

	Usage :			Call to get the default extension of the 
					files.
   ============================================================*/
{

	return m_extension;

}

⌨️ 快捷键说明

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