Ohne strval funktioniert es nicht, anders schon?

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,
    etwas sehr merkwürdiges...


    Hier mein Code:

    PlayerInfo[playerid][pCode] = strval(field[13]);

    So funktioniert es nicht!, anders:

    PlayerInfo[playerid][pCode] = field[13];


    So funktioniert es??!
    Kann mir bitte einer erklären warum das so ist?
    PS: Es handelt sich um einen String (MD5 Hash)


    San Andreas [Fun]RealLife
    [ TOOL ] Grex's RCON Tool
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher" - Albert Einstein

    Einmal editiert, zuletzt von Grex ()

  • field wird bei dir als string wert erkannt sprich ein Buchstabe braucht eine Zelle eine Zahl auch egal wie hoch sie ist.
    Da der Wert als String erkannt wird musst du die array dahinter weg lassen :


    PlayerInfo[playerid][pCode] = strval(field);


  • new data[34];
    new query[64];
    format(query,sizeof(quer),"select ...... code from accounts where username = '%s';",plname);
    mysql_query(query);
    mysql_store_result();
    new field[21][34];
    if(mysql_fetch_row(data, "|"))
    {
    split(data,field, '|');
    PlayerInfo[playerid][pCode] = field[13];
    }
    mysql_free_result();


    Mit anderen Strings funktioniert es nicht..., und zwar ganz nicht, auch mit strval...

  • normalerweise schon aber sscanf hat den Vorteil das es seine Aufgabe etwas Ressourcen schonender erledigt sprich für Split brauchst du nochmal eine Mehrdimensionale Array
    also daher würde sscanf wie gesagt die bessere Methode sein, wenn du mal mit C/C++ zu tun hattest sollte das nichts neues für dich sein, sscanf trennt Werte & kopiert diese Direkt in
    bestimmte Variablen, sie müssen jedoch mit dem Datentyp übereinstimmen der anfällt.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Beispiel ^^


    hier die Datentypen...

    Code
    ; font-style: italic;">c - A character.
    d, i - An integer.
    h, x - A hex number (e.g. a colour).
    f - A float.
    s - A string.
    z - An optional string.
    pX - An additional delimiter where X is another character.
    '' - Encloses a litteral string to locate.
    u - User, takes a name, part of a name or an id and returns the id if they're connected.


    Code
    sscanf("Hallo Welt 1 2 3","ssiii",string_var0,string_var1,zahlenVar0,zahlenVar1,zahlenVar2);


    nun enthält :

    • string_var0 = Hallo
    • string_var1 = Welt
    • zahlenVar0 = 1
    • zahlenVar1 = 2
    • zahlenVar2 = 3

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • aso, hmm ja werde ich probieren, doch ich müsse es eigentlich so lösen...


    EDIT: Hab das mal mit sscanf probiert, hab ein paar Errors... müsste doch so stimmen oder?:

    sscanf(data,"iiiiiissiifffsiiiii",PlayerInfo[playerid][pTut],PlayerInfo[playerid][pMissionNr],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pAdjustable],
    PlayerInfo[playerid][pFuel],PlayerInfo[playerid][pMarried],PlayerInfo[playerid][pReason],PlayerInfo[playerid][pMD5],PlayerInfo[playerid][pNav],
    PlayerInfo[playerid][pNavX]PlayerInfo[playerid][pNavY],PlayerInfo[playerid][pNavZ],PlayerInfo[playerid][pCode],PlayerInfo[playerid][pSP],PlayerInfo[playerid][pBHF],
    PlayerInfo[playerid][pDonuts],PlayerInfo[playerid][pRobSkill],PlayerInfo[playerid][pLaptop]);

    Errors:


    12452 -- 12455 befindet sich dieser Code.


    EDIT: Ein "Beistrich" hab ich übersehen also ein , :P
    Danke dir, funktionier einwandfrei, werde das ganze mal umschreiben. Habe mir gleich den Tipp auf der Seite zu Herzen genommen und habe es mit sscanf2 gemacht.


    San Andreas [Fun]RealLife
    [ TOOL ] Grex's RCON Tool
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher" - Albert Einstein

    2 Mal editiert, zuletzt von Grex ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen