ConfigWriter.h
#ifndef CONFIGWRITER_H#define CONFIGWRITER_H////////////////////////////////////////////////////////// ConfigWriter.h// Justin Walsh 11/17/2003// ConfigWriter - a class to handle writing and// reading a basic config file, stores values// as labels, followed by an int./////////////////////////////////////////////////////// #include <iostream>#include <fstream>#include <vector>#include <string>using namespace std;#define cfg_nomatch 9999struct field { int value; string label;};class ConfigWriter { private: vector fileEntries; char* filename; ofstream fout; ifstream fin; public: ConfigWriter(char* filename); ~ConfigWriter(); void AddEntry(string eLabel, int eValue); int GetEntry(string searchVal); bool write(void); bool read(void);};#endif
ConfigWriter.cpp
#include "ConfigWriter.h"ConfigWriter::ConfigWriter(char *filename) { ConfigWriter::filename = filename;}ConfigWriter::~ConfigWriter() { fileEntries.clear();}bool ConfigWriter::write() { fout.open(filename); if(!fout.good()) //if not good rtrn false return false; for(int i=0; i < fileEntries.size(); i++) { fout << fileEntries.label << " " << fileEntries.value << endl;<br> }<br><br> fout << flush;<br> fout.close();<br><br> return true;<br>}<br><br>bool ConfigWriter::read() {<br> fin.open(filename);<br> field temp;<br><br> if(!fin.good())<br> return false;<br><br> while(!fin.eof()) {<br> fin >> temp.label;<br> fin >> temp.value;<br> fileEntries.push_back(temp);<br> }<br> fin.close();<br> return true;<br>}<br><br>void ConfigWriter::AddEntry(string eLabel, int eValue) {<br> field temp;<br> temp.label = eLabel;<br> temp.value = eValue;<br> fileEntries.push_back(temp);<br>}<br><br>int ConfigWriter::GetEntry(string searchVal) {<br> for(int i=0; i < fileEntries.size(); i++) {<br> if(fileEntries.label == searchVal)<br> return fileEntries.value;<br> }<br> return cfg_nomatch;<br>}<br> </pre> <br><br>I know it isnt very advanced, but again gets th job done, has readable text file. Will probably write another class over this one that will actually do the settings of the window etc, but give some replies as to this way of doing things. </i> <br><br><SPAN CLASS=editedby>[edited by - justinwalsh on November 17, 2003 2:29:19 AM]</SPAN>