title image


Smiley Re: INI-Datei auslesen
Hi



"Richtig" oder "Falsch" gibt es da fast nicht. Ein geeignetes Format für die INI-Datei hängt davon ab, wie "flexibel" der Dateiinhalt sein soll. Am einfachsten wäre es, wenn du festelgen würdest, daß die Datei NUR die angegebenen Daten (in einer festen Reihenfolge, ohne Aanführungzeichen) enthalten soll.



Falls du aber wirklich die Variablennamen mit reinschreiben willst, mußt du jede Zeile der Datei lesen, und nachsehen, ob sie mit einem Variablennamen anfängt.





#include <iostream>

#include <fstream>

#include <sstream>

#include <string>



using namespace std;



// So könnte es sein, wenn die Datei NUR die Daten enthält, die gelesen werden sollen

int main1() {



string telefonnummer;

string benutzername;

string passwort;



fstream input("ini.txt");



// Lies das, was in der Datei steht...

getline(input, telefonnummer);

getline(input, benutzername);

getline(input, passwort);



system("PAUSE");

return 0;

}







// Ungefähr(!) so könnte es mit Variablennamen funktionieren.



int main() {



string telefonnummer;

string benutzername;

string passwort;



ifstream input("ini.txt");

string line = "";



// Datei Zeilenweise lesen

while (input) {

getline(input, line);

cout << "Line " << line << endl;



if (line=="[Einwahldaten]") {



// Einwahldaten lesen

while (input) {

getline(input, line);



// Lies den Variablennamen

stringstream ss;

ss << line;

string varName, value;

getline(ss, varName, '=');

cout << "varName " << varName << endl;



// Lies den Variablenwert (das in den "Anführungzeichen")

getline(ss, value, '\"');

getline(ss, value, '\"');

cout << "value " << value << endl;



// Weise der jeweiligen Variablen ihren Wert zu

if (varName=="Benutzername") benutzername = value;

else if (varName=="Telefonnummer") telefonnummer = value;

else if (varName=="Passwort") passwort = value;

}

}

}

input.close();

system("PAUSE");

return 0;

}







bye



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: