Werte aus einer Datei werden nicht geladen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo


    Ich habe ein Problem, und zwar, dass das Geld aus den 17 Fraktionskassen bei einem Restart nicht geladen wird. Es heisst immer, die Kasse hätte 0 Dollar. Ich kann zwar etwas einzahlen und es wird in die Datei geschrieben, aber dieser Betrag wird nicht geladen. Ich wiess nicht, ob es irgendwie am Trenn-Komma liegt (Ob das , bei strval weg muss/nicht da sein dürfte).



    #define MAX_FRAKTIONEN 17


    #define KASSEN_DATEI "Fraktion/fraktionskasse.ini"


    new kassenline[255],File:kassenx= fopen(KASSEN_DATEI,io_read),kassen_index;
    if(kassenx)
    {
    for(new id =0; id<MAX_FRAKTIONEN; id++)
    {
    Kasse[id][FBetrag] = strval(strtok(kassenline,kassen_index,','));
    }
    fclose(kassenx);
    }


    //Edit
    Hier noch der Code zum Abspeichern:


    public SaveKasse()
    {
    new fm[255],File:kassenx = fopen(KASSEN_DATEI,io_write);
    for(new i = 0;i<MAX_FRAKTIONEN;i++)
    {
    format(fm,sizeof fm,"%d\r\n",
    Kasse[i][FBetrag]);
    fwrite(kassenx,fm);
    }
    fclose(kassenx);
    return 1;
    }


    MfG dUDA

  • Ich würd für die ganzen Kassenbeträge gar keine Variablen erstellen, einfach in irgendner Datei abspeichern und das tolle ist ja, der Name der Datei ändert sich ja nicht also kann man die einfach immer ganz bequem laden. Z.B. per dini_Int,

    new VarXYZ = dini_Int(KASSEN_DATEI,"VarZXY");

  • Hallo


    Ich habe einen kleinen Fehler, es geht jetzt ;)
    Es lag höchstwahrscheinlich an der Zeile, wo der Wert zugewiesen wird. So geht es jetzt:


    //Fraktionskasse
    new id = -1;
    new File:fop = fopen(KASSEN_DATEI,io_read);
    new eingabe[255];
    if(fop)
    {
    while(fread(fop,eingabe))
    {
    id++;
    Kasse[id][FBetrag] = strval(eingabe);
    }
    fclose(fop);
    }


    Bloody
    Stimmt, e slag entweder am fehlenden fread oder an der Wertzuweissung
    @hp Ich mag dini nicht ;)


    MfG dUDA