Ini Datein mit VC++



  • Hi Leuts,

    ich musste von Borland auf den MS VC++ 7 umsteigen.

    Beim Borland stand mit eine Klasse TMemIni File zur verfügung die das einlesen von Ini Dateien vereinfachte.

    Bevor ich mir nun eine Klasse selbst schreibe möchte ich gerne wissen ob es nicht schon was gibt was folgendes erfüllen kann:

    • Lesen / Schreiben verschiedener Datentypen (string, nummerisch, Datum Bool etc)
    • Lesen aller vorhandener Sektionen in eine Stringliste
    • Lesen aller Schlüssel innerhalb einer Sektion in eine Stringliste
    • Löschen von Keys
    • Löschen von Sektionen
    • Lesen beliebiglanger Zeilen in der ini Datei (einschränkung auf 65k bei Windows 95/98/Me halt)

    Vielen Dank

    Michael



  • Das müsste glaube ich das sein, was du suchst...
    http://www.codeguru.com/data-misc/CIniEx.html



  • Nicht ganz das was ich erhoffte,

    aber eine sehr gute Basis 🤡

    Viiieeelen Dank für die Info

    Michael



  • Ich habe folgendes Problem:

    CString gibts einmal in der ATL und einmal in der MFC.

    int    CompareStrings   (CString *str1,CString *str2);
    CStringArray        **m_Keys;
    
    nRet=CompareStrings(&m_Keys[nIndex]->GetAt(i),&Key);
    

    Fehlermeldung:
    z:\CIniEx\IniEx.cpp(198): error C2440: 'Typenumwandlung' : 'const CString *__w64 ' kann nicht in 'ATL::CStringT' konvertiert werden

    Nu steht in der Doku zur MFC das CStringArry im opetrator[] ein CString zurück gibt.

    Was ist nun aber ein CString ? Ich finde nur verweisse auf CStringT - zumal der Compiler sich als den aus der ATL greift 😞

    *total verwirrt schau* 😕



  • Hallo!
    Schau dir die folgenden Funktionen an:

    WritePrivateProfileString(...),
    GetPrivateProfileString(...),
    GetPrivateProfileInt(...)



  • War doppelt

    [ Dieser Beitrag wurde am 16.09.2002 um 11:29 Uhr von Laie editiert. ]



  • Die Funktionen kenne ich.

    Schau Dir bitte mal den ersten Beitrag an. Gaaanz oben.

    Dennoch thx



  • So lässt es sich compilieren

    int    CompareStrings   (const CString *str1,const CString *str2);
    CStringArray        **m_Keys;
    
    nRet=CompareStrings(&m_Keys[nIndex]->GetAt(i),&Key);
    

    Etwas irre schau ich aber immer noch.

    Noch ne frage:
    Da steht irgendwo mal

    CString temp;
    int i = a;

    temp = a;

    Resultat mehrdeutigkeit. Aber ich bekomme nicht gesagt was da mehrdeutig ist.
    Wie kann man denn rausbekommen mit was der operator = mehrdeutig sein soll ?


Anmelden zum Antworten