String aus INI-Datei auslesen

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 leider ein Problem, undzwar wird das nicht ausgelesen...


    Ganz oben:
    enum gInfo
    {
    RankN1,
    RankN2,
    RankN3,
    RankN4,
    RankN5,
    RankN6,
    RankNL,
    }
    new GangInfo[100][gInfo];


    OnGameModeInit
    new File: UserFile = fopen("rFraktionen/Aztecas.ini", io_read);
    new key[256] , val[256];
    new Data[256];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "RankN1" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN1] = strval( val ); }
    if( strcmp( key , "RankN2" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN2] = strval( val ); }
    if( strcmp( key , "RankN3" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN3] = strval( val ); }
    if( strcmp( key , "RankN4" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN4] = strval( val ); }
    if( strcmp( key , "RankN5" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN5] = strval( val ); }
    if( strcmp( key , "RankN6" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN6] = strval( val ); }
    if( strcmp( key , "RankNL" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankNL] = strval( val ); }
    }
    fclose(UserFile);


    Befehl zum Anzeigen:
    if(strcmp(cmd,"/ranknamen",true)==0)
    {
    format(string,sizeof(string),"Rank1:%s | Rank2:%s | Rank3:%s | Rank4:%s | Rank5:%s | Rank6:%s | Leader:%s",GangInfo[1][RankN1],GangInfo[1][RankN2],GangInfo[1][RankN3],GangInfo[1][RankN4],GangInfo[1][RankN5],GangInfo[1][RankN6],GangInfo[1][RankNL]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    return 1;
    }


    Angezeigt wird nur das:

    Zitat

    Rank1: | Rank2: | Rank3: | Rank4: | Rank5: | Rank6: | Leader:

    Was mache ich falsch?

  • enum gInfo
    {
    RankN1[255],
    RankN2[255],
    RankN3[255],
    RankN4[255],
    RankN5[255],
    RankN6[255],
    RankNL[255],
    }

    Du suchst eine nette Community, ein hilfsbereites Team & einen Server, wo es Spaß macht, drauf zu spielen?
    Dann bist du bei Sunrise - Reallife genau richtig!

  • Ok, hab das Problem gelöst. Musste mit strmid arbeiten:


    if( strcmp( key , "RankN1" , true ) == 0 ) { val = ini_GetValue( Data ); GangInfo[1][RankN1] = strval( val ); }//FALSCH
    if( strcmp( key , "RankN1" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN1] ,val, 0, 256, 256);}//RICHTIG
    Danke, Airy :)


    /close

  • Hmm... ne doch nicht X(


    Hab das jetzt so:
    new File: gUserFile = fopen("rFraktionen/Aztecas.ini", io_read);
    new key[256] , val[256];
    new Data[256];
    while ( fread( gUserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "RankN1" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN1] ,val, 0, 256, 256);}
    if( strcmp( key , "RankN2" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN2] ,val, 0, 256, 256);}
    if( strcmp( key , "RankN3" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN3] ,val, 0, 256, 256);}
    if( strcmp( key , "RankN4" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN4] ,val, 0, 256, 256);}
    if( strcmp( key , "RankN5" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN5] ,val, 0, 256, 256);}
    if( strcmp( key , "RankN6" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankN6] ,val, 0, 256, 256);}
    if( strcmp( key , "RankNL" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(GangInfo[1][RankNL] ,val, 0, 256, 256);}
    }
    fclose(gUserFile);
    Aber er liest das nicht aus, wenn ich anstatt von "val" "Data" nehme, dann schreibt er mir ingame RankN1= rein, also das mit strmid passt würde ich sagen.


    /*edit: Wenn ich anstatt von val z.B.: "123Test" nehme, dann wird ingame 123Test ausgegeben, also kanns nur am ini_GetValue oder so liegen /edit*/
    Irgendwas mit der val stimmt nicht :/
    Was soll ich statt ini_GetValue nehmen?


    stock ini_GetValue( line[] )
    {
    new valRes[256];
    valRes[0]=0;
    if ( strfind( line , "=" , true ) == -1 ) return valRes;
    strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
    return valRes;
    }

    Einmal editiert, zuletzt von Firefox ()