Strings und Nullterminierungs-Zeichen (INI-Datei auslesen)



  • Hallo!

    Ich würde gerne aus meiner INI-Datei etwas auslesen.
    Der Eintrag sieht so aus:

    [commands] 
    command1=dothis 
    command2=dothat 
    command3=doall
    

    Ich lese das ganze mit GetPrivateProfileSection aus.
    MSDN sagt dazu folgends:

    Dass heisst ich bekomme einen String, der die einzelnen Wert-paare mit Nullterminierungs-Zeichen trennt ?
    Das einzige was ich nach langem Suchen gefunden habe, um Strings zu zerlegen war strtok.

    also habe ich folgendes probiert:

    int num; 
                                    char tcommand[500]; 
                DWORD size=500; 
    
                num = GetPrivateProfileSection("commands",tcommand,size,"D:\\commands.ini"); 
    
                char *token; 
                token = strtok(tcommand,"\n"); 
                MessageBox(hWnd,token,"",MB_OK); 
    
                while(token != NULL) 
                      { 
                         MessageBox(hWnd,token,"",MB_OK); 
                         token = strtok( NULL,"\n"); 
                      }
    

    Ich bekomme den ersten Teil meines Strings, jedoch sonst keinen. Die Schleife wird einmal durchlaufen und dann beendet, als gäbe es nichts mehr zum einlesen.
    Dabei sagt mir num, dass tcommands 47 Zeichen hat!



  • Du liest einfach den jeweiligen String normal aus und verschiebst anschließend den Pointer entsprechend der Stringlänge (hinzuaddieren)


Anmelden zum Antworten