Variablen Werte durch eine Datei zuweisen
-
ich habe momentan ein kleines problem, bei dem ich gar keinen ansatz habe:
ich habe eine datei, in der einige werte stehen...
Bsp.:
pause=10
name=meinname
.
.
.
usw.ich habe auch variablen, die diesen namen haben...
nun möchte ich den variablen die werte aus der datei zuweisen... aber wie mache ich das?hatte schon an strstreams gedacht... also, dass ich in den strstream den namen der variable einlese.. und nun weiß ich nicht weiter... wie kann ich nun weitermachen?
-
Lies die Datei Zeilenweise ein. Dann such einfach in der Zeile das "=" Zeichen. Nun packst du das, was vor dem "=" steht in einen string und das was danach steht in einen strstream. Dann guckst du welcher Text vor dem "=" gestanden hat und setzt in der entsprechenden Variable den Wert mir dem strstream.
-
#include <string> #include <map> #include <fstream> using namespace std; class IniFile { private: public: IniFile(const char *fileName) { ifstream is(fileName); if(is) { string line, name, value; while(is) { if(!getline(is, line)) break; //1. find = string::size_type i = line.find('='); if(string::npos != i) { name = line.substr(0, i); value = line.substr(i + 1, line.length() - i); vals[name] = value; } else { throw "file format is wrong"; } } } else { throw "can't input find file"; } } const string &operator[](const string &name) const { return vals[name]; } private: mutable map<string, string> vals; }; int main() { try { IniFile file("c:\\temp\\1.ini"); cout << file["wer"]; cout << file["qwer"]; } catch(const char *errMess) { cerr << errMess << endl; } return 0; }