git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			258 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\class{wxTextFile}}\label{wxtextfile}
 | |
| 
 | |
| The wxTextFile is a simple class which allows to work with text files on line by
 | |
| line basis. It also understands the differences in line termination characters
 | |
| under different platforms and will not do anything bad to files with "non
 | |
| native" line termination sequences - in fact, it can be also used to modify the
 | |
| text files and change the line termination characters from one type (say DOS) to
 | |
| another (say Unix).
 | |
| 
 | |
| One word of warning: the class is not at all optimized for big files and so it
 | |
| will load the file entirely into memory when opened. Of course, you should not
 | |
| work in this way with large files (as an estimation, anything over 1 Megabyte is
 | |
| surely too big for this class). On the other hand, it is not a serious
 | |
| limitation for the small files like configuration files or programs sources
 | |
| which are well handled by wxTextFile.
 | |
| 
 | |
| The typical things you may do with wxTextFile in order are:
 | |
| 
 | |
| \begin{itemize}\itemsep=0pt
 | |
| \item Create and open it: this is done with \helpref{Open}{wxtextfileopen} 
 | |
| function which opens the file (name may be specified either as Open argument or
 | |
| in the constructor), reads its contents in memory and closes it. If all of these
 | |
| operations are successful, Open() will return TRUE and FALSE on error.
 | |
| \item Work with the lines in the file: this may be done either with "direct
 | |
| access" functions like \helpref{GetLineCount}{wxtextfilegetlinecount} and 
 | |
| \helpref{GetLine}{wxtextfilegetline} ({\it operator[]} does exactly the same
 | |
| but looks more like array addressing) or with "sequential access" functions
 | |
| which include \helpref{GetFirstLine}{wxtextfilegetfirstline}/
 | |
| \helpref{GetNextLine}{wxtextfilegetnextline} and also 
 | |
| \helpref{GetLastLine}{wxtextfilegetlastline}/\helpref{GetPrevLine}{wxtextfilegetprevline}.
 | |
| For the sequential access functions the current line number is maintained: it is
 | |
| returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} and may be
 | |
| changed with \helpref{GoToLine}{wxtextfilegotoline}.
 | |
| \item Add/remove lines to the file: \helpref{AddLine}{wxtextfileaddline} and 
 | |
| \helpref{InsertLine}{wxtextfileinsertline} add new lines while 
 | |
| \helpref{RemoveLine}{wxtextfileremoveline} deletes the existing ones.
 | |
| \item Save your changes: notice that the changes you make to the file will {\bf
 | |
| not} be saved automatically; calling \helpref{Close}{wxtextfileclose} or doing
 | |
| nothing discards them! To save the changes you must explicitly call 
 | |
| \helpref{Write}{wxtextfilewrite} - here, you may also change the line
 | |
| termination type if you wish.
 | |
| \end{itemize}
 | |
| 
 | |
| \wxheading{Derived from}
 | |
| 
 | |
| No base class
 | |
| 
 | |
| \wxheading{Include files}
 | |
| 
 | |
| <wx/textfile.h>
 | |
| 
 | |
| \wxheading{Data structures}
 | |
| 
 | |
| The following constants identify the line termination type:
 | |
| 
 | |
| \begin{verbatim}
 | |
| enum wxTextFileType
 | |
| {
 | |
|     wxTextFileType_None,  // incomplete (the last line of the file only)
 | |
|     wxTextFileType_Unix,  // line is terminated with 'LF' = 0xA = 10 = '\n'
 | |
|     wxTextFileType_Dos,   //                         'CR' 'LF'
 | |
|     wxTextFileType_Mac    //                         'CR' = 0xD = 13 = '\r'
 | |
| };
 | |
| \end{verbatim}
 | |
| 
 | |
| \wxheading{See also}
 | |
| 
 | |
| \helpref{wxFile}{wxfile}
 | |
| 
 | |
| \latexignore{\rtfignore{\wxheading{Members}}}
 | |
| 
 | |
| \membersection{wxTextFile::wxTextFile}\label{wxtextfilectordef}
 | |
| 
 | |
| \constfunc{}{wxTextFile}{\void}
 | |
| 
 | |
| Default constructor, use Open(string) to initialize the object.
 | |
| 
 | |
| \membersection{wxTextFile::wxTextFile}\label{wxtextfilector}
 | |
| 
 | |
| \constfunc{}{wxTextFile}{\param{const wxString\& }{strFile}}
 | |
| 
 | |
| Constructor does not load the file into memory, use Open() to do it. 
 | |
| 
 | |
| \membersection{wxTextFile::Exists}\label{wxtextfileexists}
 | |
| 
 | |
| \constfunc{bool}{Exists}{\void}
 | |
| 
 | |
| Return TRUE if file exists - the name of the file should have been specified
 | |
| in the constructor before calling Exists().
 | |
| 
 | |
| \membersection{wxTextFile::Open}\label{wxtextfileopen}
 | |
| 
 | |
| \constfunc{bool}{Open}{\void}
 | |
| 
 | |
| Open() opens the file with the name which was given in the \helpref{constructor}{wxtextfilector} 
 | |
| and also loads file in memory on success.
 | |
| 
 | |
| \membersection{wxTextFile::Open}\label{wxtextfileopenname}
 | |
| 
 | |
| \constfunc{bool}{Open}{\param{const wxString\& }{strFile}}
 | |
| 
 | |
| Same as \helpref{Open()}{wxtextfileopen} but allows to specify the file name
 | |
| (must be used if the default constructor was used to create the object).
 | |
| 
 | |
| \membersection{wxTextFile::Close}\label{wxtextfileclose}
 | |
| 
 | |
| \constfunc{bool}{Close}{\void}
 | |
| 
 | |
| Closes the file and frees memory, {\bf losing all changes}. Use \helpref{Write()}{wxtextfilewrite} 
 | |
| if you want to save them.
 | |
| 
 | |
| \membersection{wxTextFile::IsOpened}\label{wxtextfileisopened}
 | |
| 
 | |
| \constfunc{bool}{IsOpened}{\void}
 | |
| 
 | |
| Returns TRUE if the file is currently opened.
 | |
| 
 | |
| \membersection{wxTextFile::GetLineCount}\label{wxtextfilegetlinecount}
 | |
| 
 | |
| \constfunc{size\_t}{GetLineCount}{\void}
 | |
| 
 | |
| Get the number of lines in the file.
 | |
| 
 | |
| \membersection{wxTextFile::GetLine}\label{wxtextfilegetline}
 | |
| 
 | |
| \constfunc{wxString\&}{GetLine}{\param{size\_t }{n}}
 | |
| 
 | |
| Retrieves the line number {\it n} from the file. The returned line may be
 | |
| modified but you shouldn't add line terminator at the end - this will be done
 | |
| by wxTextFile.
 | |
| 
 | |
| \membersection{wxTextFile::operator[]}\label{wxtextfileoperatorarray}
 | |
| 
 | |
| \constfunc{wxString\&}{operator[]}{\param{size\_t }{n}}
 | |
| 
 | |
| The same as \helpref{GetLine}{wxtextfilegetline}.
 | |
| 
 | |
| \membersection{wxTextFile::GetCurrentLine}\label{wxtextfilegetcurrentline}
 | |
| 
 | |
| \constfunc{size\_t}{GetCurrentLine}{\void}
 | |
| 
 | |
| Returns the current line: it has meaning only when you're using
 | |
| GetFirstLine()/GetNextLine() functions, it doesn't get updated when
 | |
| you're using "direct access" functions like GetLine(). GetFirstLine() and
 | |
| GetLastLine() also change the value of the current line, as well as
 | |
| GoToLine().
 | |
| 
 | |
| \membersection{wxTextFile::GoToLine}\label{wxtextfilegotoline}
 | |
| 
 | |
| \constfunc{void}{GoToLine}{\param{size\_t }{n}}
 | |
| 
 | |
| Changes the value returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} 
 | |
| and used by \helpref{GetFirstLine()}{wxtextfilegetfirstline}/\helpref{GetNextLine()}{wxtextfilegetnextline}.
 | |
| 
 | |
| \membersection{wxTextFile::Eof}\label{wxtextfileeof}
 | |
| 
 | |
| \constfunc{bool}{Eof}{\void}
 | |
| 
 | |
| Returns TRUE if the current line is the last one.
 | |
| 
 | |
| \membersection{wxTextFile::GetFirstLine}\label{wxtextfilegetfirstline}
 | |
| 
 | |
| \constfunc{wxString\&}{GetFirstLine}{\void}
 | |
| 
 | |
| This method together with \helpref{GetNextLine()}{wxtextfilegetnextline} 
 | |
| allows more "iterator-like" traversal of the list of lines, i.e. you may
 | |
| write something like:
 | |
| 
 | |
| \begin{verbatim}
 | |
| for ( str = GetFirstLine(); !Eof(); str = GetNextLine() )
 | |
| {
 | |
|     // do something with the current line in str
 | |
| }
 | |
| \end{verbatim}
 | |
| 
 | |
| \membersection{wxTextFile::GetNextLine}\label{wxtextfilegetnextline}
 | |
| 
 | |
| \func{wxString\&}{GetNextLine}{\void}
 | |
| 
 | |
| Gets the next line (see \helpref{GetFirstLine}{wxtextfilegetfirstline} for 
 | |
| the example).
 | |
| 
 | |
| \membersection{wxTextFile::GetPrevLine}\label{wxtextfilegetprevline}
 | |
| 
 | |
| \func{wxString\&}{GetPrevLine}{\void}
 | |
| 
 | |
| Gets the previous line in the file.
 | |
| 
 | |
| \membersection{wxTextFile::GetLastLine}\label{wxtextfilegetlastline}
 | |
| 
 | |
| \func{wxString\&}{GetLastLine}{\void}
 | |
| 
 | |
| Gets the last line of the file.
 | |
| 
 | |
| \membersection{wxTextFile::GetLineType}\label{wxtextfilegetlinetype}
 | |
| 
 | |
| \constfunc{wxTextFileType}{GetLineType}{\param{size\_t }{n}}
 | |
| 
 | |
| Get the type of the line (see also \helpref{GetEOL}{wxtextfilegeteol})
 | |
| 
 | |
| \membersection{wxTextFile::GuessType}\label{wxtextfileguesstype}
 | |
| 
 | |
| \constfunc{wxTextFileType}{GuessType}{\void}
 | |
| 
 | |
| Guess the type of file (which is supposed to be opened). If sufficiently
 | |
| many lines of the file are in DOS/Unix/Mac format, the corresponding value will
 | |
| be returned. If the detection mechanism fails wxTextFileType\_None is returned.
 | |
| 
 | |
| \membersection{wxTextFile::GetName}\label{wxtextfilegetname}
 | |
| 
 | |
| \constfunc{const char*}{GetName}{\void}
 | |
| 
 | |
| Get the name of the file.
 | |
| 
 | |
| \membersection{wxTextFile::AddLine}\label{wxtextfileaddline}
 | |
| 
 | |
| \constfunc{void}{AddLine}{\param{const wxString\& }{str}, \param{wxTextFileType }{type = typeDefault}}
 | |
| 
 | |
| Adds a line to the end of file.
 | |
| 
 | |
| \membersection{wxTextFile::InsertLine}\label{wxtextfileinsertline}
 | |
| 
 | |
| \constfunc{void}{InsertLine}{\param{const wxString\& }{str}, \param{size\_t }{n}, \param{wxTextFileType }{type = typeDefault}}
 | |
| 
 | |
| Insert a line before the line number {\it n}.
 | |
| 
 | |
| \membersection{wxTextFile::RemoveLine}\label{wxtextfileremoveline}
 | |
| 
 | |
| \constfunc{void}{RemoveLine}{\param{size\_t }{n}}
 | |
| 
 | |
| Delete line number {\it n} from the file.
 | |
| 
 | |
| \membersection{wxTextFile::Write}\label{wxtextfilewrite}
 | |
| 
 | |
| \constfunc{bool}{Write}{\param{wxTextFileType }{typeNew = wxTextFileType\_None}}
 | |
| 
 | |
| Change the file on disk. The {\it typeNew} parameter allows you to change the
 | |
| file format (default argument means "don't change type") and may be used to
 | |
| convert, for example, DOS files to Unix.
 | |
| 
 | |
| Returns TRUE if operation succeeded, FALSE if it failed.
 | |
| 
 | |
| \membersection{wxTextFile::GetEOL}\label{wxtextfilegeteol}
 | |
| 
 | |
| \constfunc{static const char*}{GetEOL}{\param{wxTextFileType }{type = typeDefault}}
 | |
| 
 | |
| Get the line termination string corresponding to given constant. {\it typeDefault} is
 | |
| the value defined during the compilation and corresponds to the native format of the
 | |
| platform, i.e. it will be wxTextFileType\_Dos under Windows, wxTextFileType\_Unix under
 | |
| Unix and wxTextFileType\_Mac under Mac.
 | |
| 
 | |
| \membersection{wxTextFile::\destruct{wxTextFile}}\label{wxtextfiledtor}
 | |
| 
 | |
| \constfunc{}{\destruct{wxTextFile}}{\void}
 | |
| 
 | |
| Destructor does nothing.
 | |
| 
 |