Aus ini file lesen



  • hallo
    ich schreibe folgendermassen etwas ins ini file:

    ini = new TIniFile( ChangeFileExt(Application->ExeName, ".INI"));
    ini->WriteString("ADOConnection1", "Server", "");
    

    Und nun sollte der Benutzer des Programms im INI-File unter Server der entsprechende Server reinschreiben!
    Wie kann ich nun dies aus dem INI-File auslesen gehen?
    Mit readstring() fehlt mir ein Paramter?!
    Ich versuchte es so:

    AnsiString server;
    server = ini->ReadString("ADOConnection1","Server","");
    

    hat jemand eine idee??

    rené



  • Hallo René.s
    soweit ich das verstehe fehlt dir kein Parameter der den Parameter in der Ini-Datei beschreibt, sondern nur der Default-Wert. Hier kannst du einen beliebigen String eintragen, der als Fehlererkennung dient oder einen für dein Programm sinnvollen Wert darstellt.

    Evi48



  • hmm, klappt nicht!
    also wie meinst du irgendeinen beliebigen string?

    AnsiString blabla;
    server = ini->ReadString("ADOConnection1","Server", blabla);
    

    ??

    gruss



  • Du solltest dir mal TIni genauer in der Hilfe anschauen

    ini = new TIniFile( ChangeFileExt(Application->ExeName, ".INI"));
    ini->WriteString("ADOConnection1", "Server", "");
    

    Dein Teil würde so eine Ini schreiben:

    [ADOConnection1]
    Server=

    Warum? Weil du den 3. Parameter leer hast.

    ini->WriteString(Section, Key, Value);
    

    Bsp:

    ini = new TIniFile( ChangeFileExt(Application->ExeName, ".INI"));
    ini->WriteString("ADOConnection1", "Server", "pt");
    

    Dein Teil würde so eine Ini schreiben:

    [ADOConnection1]
    Server=pt

    Mit Read würde das so aussehen:

    AnsiString blabla;
    blabla= ini->ReadString("ADOConnection1","Server","xxxx");
    

    in blabla würde = pt drin stehen.
    wenn aber Server nicht exestiert, würde xxxx drin stehen, da es ein default wert ist.

    AnsiString blabla;
    blabla= ini->ReadString(Section, Key, DefaultValue);
    


  • das mit dem server habe ich ja extra leer gelassen, weil da der benutzer des programms dann einen server eintragen muss, welchen ich zum jetzigen zeitpunkt noch nicht kenne!das ist ja der sinn des ini-files.

    ok, das mit dem standardwert habe ich nun begriffen 😉
    vielen dank

    cu



  • Hallo rené.s

    ich habe versucht dein Problem nachzuvollziehen:

    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
    ini = new TIniFile( ChangeFileExt(Application->ExeName, ".INI"));
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    ini->WriteString("ADOConnection1", "Server", "");
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    AnsiString server;
    server = ini->ReadString("ADOConnection1","Server","");
    }
    

    Nachdem ich die Ini-Datei erstellt hatte habe ich einen Namen für den Server eingetragen und siehe da es funktioniert.

    Frohes Schaffen
    Evi48



  • Nicht vergessen #include <inifiles.hpp>

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!



  • Hallo,
    ja stimmt habe ich nicht drauf hingewiesen weil ich denke das der include bei der Vorgeschichte bekannt sein sollte.

    Evi48


Anmelden zum Antworten