Problem mit .ini



  • Hallo, ich möchte etwas in eine .ini Datei schreiben, was dann so aussehen soll:

    [Tue Nov 23 15:52:18 2010]
    Sekunden=2
    Primzahlen=5164
    Größe=50321
    

    ... Die Ausgabe sieht aber so aus:

    [Tue Nov 23 15:52:18 2010]
    Sekunden=2
    [Tue Nov 23 15:52:18 2010]
    Primzahlen=5164
    [Tue Nov 23 15:52:18 2010]
    Größe=50321
    

    Der Quellcode sieht so aus:

    time_t now;
    now = time(0);
    sprintf(szBuffer[0],"%s",ctime(&now));
    sprintf(szBuffer[1],"%i",zeit);
    sprintf(szBuffer[2],"%lli",iprim);
    sprintf(szBuffer[3],"%lli",imax);
    WritePrivateProfileString(szBuffer[0],"Sekunden",szBuffer[1],".\\pp6_log.ini");
    WritePrivateProfileString(szBuffer[0],"Primzahlen",szBuffer[2],".\\pp6_log.ini");
    WritePrivateProfileString(szBuffer[0],"Größte",szBuffer[3],".\\pp6_log.ini");
    

    Wie kann das sein? szBuffer[0] ist doch immer gleich und sollte somit als Überkategorie für alle nachfolgenden gelten oder? Wenn ich anstatt szBuffer[0] z.b. "a" mache, steht alles so wie gewollt unter "a"... Warum?

    mfg.



  • Dein Stringinhalt ist für einen Sektionnamen schon etwas ungewöhnlich.

    Hab in der Doku von WritePrivateProfileString() nachgelesen:

    lpAppName [in]
    The name of the section to which the string will be copied. If the section does not exist, it is created. The name of the section is case-independent; the string can be any combination of uppercase and lowercase letters.

    Es sieht so aus, daß Sonderzeichen wie eben ':' anscheinend unerwünscht ist...

    HTH,
    Martin



  • Danke für die Antwort, wenn ich allerdings:

    WritePrivateProfileString("Tue Nov 23 15:52:18 2010","Sekunden",szBuffer[1],".\\pp6_log.ini");
      WritePrivateProfileString("Tue Nov 23 15:52:18 2010","Primzahlen",szBuffer[2],".\\pp6_log.ini");
      WritePrivateProfileString("Tue Nov 23 15:52:18 2010","Größte",szBuffer[3],".\\pp6_log.ini");
    

    mache geht es. Also wird da nicht der Fehler liegen, oder?



  • sprintf(szBuffer[4],"Tue Nov 23 15:52:18 2010");
    WritePrivateProfileString(szBuffer[4],"Sekunden",szBuffer[1],".\\pp6_log.ini");
    WritePrivateProfileString(szBuffer[4],"Primzahlen",szBuffer[2],".\\pp6_log.ini");
    WritePrivateProfileString(szBuffer[4],"Größte",szBuffer[3],".\\pp6_log.ini");
    

    Funktioniert übrigens auch..



  • Habs gelöst.. Bei szBuffer[0][24] stand das Ascii Zeichen 10... Wenn ich

    szBuffer[0][24]=0;
    

    gehts..


Log in to reply