Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma once
00025 #ifndef __D_LINE_FILE__
00026 #define __D_LINE_FILE__
00027
00028 #include "DException.h"
00029 #include "FileModes.h"
00030 #include <vector>
00031 #include <fstream>
00032 using namespace std;
00033
00034 namespace DUtils {
00035
00036 class LineFile
00037 {
00038 public:
00039
00040
00041 LineFile(void);
00042
00043
00044
00045 ~LineFile(void);
00046
00047
00048
00049
00050
00051
00052 LineFile(const char *filename, const FILE_MODES mode);
00053 LineFile(const string &filename, const FILE_MODES mode);
00054
00055
00056
00057
00058
00059 void OpenForReading(const char *filename);
00060 inline void OpenForReading(const string &filename)
00061 {
00062 OpenForReading(filename.c_str());
00063 }
00064
00065
00066
00067
00068
00069 void OpenForWriting(const char *filename);
00070 inline void OpenForWriting(const string &filename)
00071 {
00072 OpenForWriting(filename.c_str());
00073 }
00074
00075
00076
00077
00078
00079 void OpenForAppending(const char *filename);
00080 inline void OpenForAppending(const string &filename)
00081 {
00082 OpenForAppending(filename.c_str());
00083 }
00084
00085
00086
00087
00088
00089
00090 bool Eof();
00091
00092
00093
00094
00095 void Close();
00096
00097
00098
00099
00100 LineFile& operator<< (const char *s);
00101 inline LineFile& operator<< (const string &s)
00102 {
00103 return this->operator <<(s.c_str());
00104 }
00105
00106
00107
00108
00109
00110
00111 LineFile& operator>> (string &s);
00112
00113
00114
00115
00116
00117 void Dump(const vector<string> &v);
00118 inline LineFile& operator<< (const vector<string> &v)
00119 {
00120 Dump(v);
00121 return *this;
00122 }
00123
00124
00125
00126 void DiscardLine();
00127
00128 protected:
00129
00136 void Init(const char *filename, const FILE_MODES mode);
00137
00138 protected:
00139 FILE_MODES m_mode;
00140 fstream m_f;
00141 string m_next_line;
00142 };
00143
00144 }
00145
00146 #endif
00147