INI Files lesen und schreiben



  • Ich hab wieder ein kleines Problem.
    Ich bräuchte einen funktionierenden Quellcode, mitdem ich INI Files einlesen und beschreiben kann. Hab zwar schon zwei Beispiele gefunden, aber bei dem einen verrät der Autor nicht, welche Libs ich einbinden soll und so bekomme ich immer externe Verweise Fehler. Beim anderen, meckert er mir über fast alles.

    Ich bräuchte also dringend Hilfe. Würd mich freuen, wenn mir jemand hilft.

    mfg code



  • #include <fstream>

    da gibts streams zum lesen und schreiben.



  • Solltest Du unter Windows arbeiten kannst Du veschiedene wege gehen.

    Zum einen gibt es in der WinAPI GetPrivateProfileString() zum anderen bieten die Compiler meist fertige Objekte.

    Unter welchem Betriebssystem mit welchem Compiler arbeitest Du denn ?

    Gruß

    Michael



  • ich benutze Windows und visual C++ 6

    Ich weiß, dass es einen api call fürs ini lesen gibt. In VB hab ichs ja schon gescahfft. Leider fehlt mir in C++ noch ein wenig die Erfahrung mit der Api. Ich bräuchte halt mal ein gutes Beispiel

    mfg code



  • //Schreibt eine int in das File programmname.ini
    AfxGetApp()->WriteProfileInt("MeineSection","NameDerIntVariablen",my_int);
    //Schreibt einen string in das File programmname.ini
    AfxGetApp()->WriteProfileString("MeineSection","NameDerStringVariablen",LPCSTR(my_CString));
    //Lese eine int aus - falls nicht im File enthalten kriegt sie den Wert 1
    my_int=AfxGetApp()->GetProfileInt("MeineSection","NameDerIntVariablen",1);
    //Lese einen CString (Default = "0.0.0.0")
    my_CString=AfxGetApp()->GetProfileString("MeineSection","NameDerStringVariablen","0.0.0.0");

    Gucke mal selber, ob das gut ist!?

    Gruß holk



  • Ist ziemlich einfach:
    Beispielweise willst Du eine "test.ini" mit diesem Inhalt speichern/einlesen:

    [common]
    EinPfad=c:\lol\
    Nochwas=1
    
    [bla]
    test=0
    

    Zum Speichern:

    WritePrivateProfileString("common","EinPfad","c:\\lol\\","test.ini");
    WritePrivateProfileString("common","Nochwas","1","test.ini");
    WritePrivateProfileString("bla","test","0","test.ini");
    

    Zum Einlesen:

    char EinPfad[500];
    char Nochwas[500];
    char Test[500];
    DWORD destSize;
    
    destSize=500;
    GetPrivateProfileString("common","EinPfad","NULL",EinPfad,destSize,"test.ini");
    GetPrivateProfileString("common","Nochwas","NULL",Nochwas,destSize,"test.ini");
    GetPrivateProfileString("bla","test","NULL",Test,destSize,"test.ini");
    // Wenn die Variablen aus der Ini nicht eingelesen werden können, steht nach dem Aufruf der Default-Wert in Test, EinPfad oder Test (In diesem Beispiel "NULL");
    


  • ich finde, dass müsste mal in die FAQ. hab dazu nämlich noch keinen Beitrag gefunden
    wär nett, wenn das mal ein mod machen könnte

    danke
    Dommel


Anmelden zum Antworten