[C/C++] VisualStudio c++ .ini einlesen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von essex, 14. September 2007 .

Schlagworte:
  1. 14. September 2007
    VisualStudio c++ .ini einlesen

    Hallo Leute,
    ich habe hier ein mittelgroßes Problem beim Einlesen einer .ini Datei in mein Microsoft Visual C++ Projekt.... (Ich möchte meine Comboboxes mit eben diesen eingelesenen Daten füllen.)

    Hab bis jetzt ne Menge im www gefunden über alle möglichen Funktionen (GetPrivateProfileString, Tini,....) aber ich weiß weder welche die richtige für mich ist, noch wie genau ich sie einsetze.
    Das Problem ist, dass ich zuvor mit MVC noch nicht wirklich gearbeitet habe und mich die schiere Anzahl an Definitionen und Klassen (nach dem Erstellen eines Fensters) geradzu erschlägt.

    Vielleicht kann mir ja einer von euch sagen WO ich genau WAS einfügen muss/ soll damit ich da mal nen Schritt weiterkomm.

    Also nochmal in kurzform: ini Datei in MVC Projekt einlesen und in Variable speichern....

    Vielen Dank schonmal fürs Durchlesen Hoffe es ist verständlich
     
  2. 15. September 2007
    AW: VisualStudio c++ .ini einlesen

    das was du suchst nennt sich Parser. du müsstest dir einen Parser bauen, der eben die ini datei ausließt und wie du schon gesagt hast in variablen abspeichert.

    Code:
    #include <stdio.h>
    
    int main()
    {
    char[] logins = "";
    
    FILE *datei;
    datei = fopen("pfad/zurdatei/file.txt","r");
    
    fscanf(datei, "%s", logins);
    
    return 0;
    }
    
    dadurch hast du den allerersten wert in deiner datei, der ein String ist direkt in die variable "logins" hineingesteckt. so in etwa könnte es funktionieren. habe die genauen syntaxen nicht mehr im kopf. aber wenn du nach parser googelst wirst du sicher fündig.
     
  3. 16. September 2007
    AW: VisualStudio c++ .ini einlesen

    Du meinst sicher MFC und nicht MVC.

    Nen Parser brauchts unter windows nicht. Die WinAPI liefert dafür schon Funktionen:
    C++ INI Datei schreiben, INI File speichern

    Die MFC hat aber auch eigene Objekte zum Lesen von INI-Dateien:
    c++.de :: INI Files lesen und schreiben
     
  4. 17. September 2007
    AW: VisualStudio c++ .ini einlesen

    hey danke fuer die antworten,
    das mit dem getPrivateProfileString habe ich mittlerweile hinbekommen.

    aber jetzt habe ich ein neues problem

    ich habe ja die daten in einem array abgelegt. dieses array, also der inhalt, moechte ich jetzt meiner combobox zuweisen.
    hierzu habe ich zwei sachen gefunden:
    1. control variable erstellen und der combobox als datenquelle hinzufuegen
    2. ueber addRange der combobox hinzufuegen

    ich bekommen aber weder noch zum laufen. bei 1tens habe ich noch dazu das problem, dass ich keine control variable erstellen kann. ueber die klassenansicht-> add variable kommt zwar der wizzard, aber ich kann das kaestchen 'control variable' nicht anklicken ??!?! ist deaktiviert.

    nur mal am rande - der besagte code ^^ kommt dann in die .cpp oder mit in die .h (in der die definitionen fuer die komponenten stehen) ?? weil die zuweisungen fuer eine standard combobox
    naemlich in der .h stehen

    bin langsam echt am verzweifeln, weil ich im netz wirklich absolut gar nix brauchbares finden kann was mir auch nur ansatzweise weiterhilft
    (wenn ihr codestuecke von mir sehen wollt, einfach sagen)


    edit: es ist keine MFC sondern eine Windows Forms Anwendung
    edit2: so jetzt hab ichs nochmal als MFC aufgesetzt, Problem ist noch das gleiche
     
  5. 19. September 2007
    AW: VisualStudio c++ .ini einlesen

    Soda, hab des ganze jetzt nochmal neu aufgesetzt in MFC, aber da hab ich jetzt ein Cast Problem.
    Wenn ich die ini Daten mit GetPrivateProfileString/Section einlese, dann hab ich sie im TCHAR Format vorliegen. Sobald ich irgendwie damit arbeiten will, bzw sie eben in die ComboBox schreiben will, kommen ständig Fehler von wegen falscher Typ, etc.
    Code:
     TCHAR ComboDevRead[40]; 
    
     //Einlesen aller Keys aus Section DEVICE
     GetPrivateProfileString(TEXT("Device"), NULL, NULL, ComboDevRead, sizeof(ComboDevRead), TEXT("C:\\Tank.ini"));
    
     int iMax=ComboDevRead.GetCount();
     for(int i=0; i<iMax; i++)
     ComboDev.AddString(ComboDevRead);
    
    Ach ja, und bei der .GetCount() kommt auch ein Fehler dass er eine Klasse/Struktur/Union links vom Punkt will, aber da is ja ne Struktur (des Array)

    Kann mir nochmal jemand helfen
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.