Einzelne Einträge untereinander Auflisten

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
  • Hi, weiß jemand wie man über MySQL einzelne Einträge aus einer Datenabk im Dialog untereinander aufzählen lässt?


    new dialogtext[256];
    for(new i; i != zeilen; i++)
    {
    cache_get_row(i, 2, content);
    strcat(dialogtext, content);
    strdel(content, 0, 64);
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, dialoghead, dialogtext, "OK", "");


    Habe sowas in der Art versucht aber hatte keinen Erfolg.
    Man muss ja mit einer Funktion bspw "~" zu "\n" ändern, aber keine Ahnung wie das gehen soll.
    Jemand eine Idee?

  • Funktioniert nicht, strcat mixt die ganzen Einträge zusammen und dann kommen da alle Anfangsbuchstaben der Einträge gemixt raus.
    Hätte eig schon an sowas gedacht:


    stock mysql_umbruch(string[])
    {
    while(strfind(string, "~") != -1)
    {
    new pos = strfind(string, "~");
    new len2 = strlen("~");
    strdel(string, pos, (pos+len2));
    strins(string, "\r", pos, 2);
    }
    return string;
    }


    Sollte eigentlich auch funktionieren, aber irgendwie will mein Script irgendwie bei der Schleife die Strings nicht zusammenführen, also das es halt so ist:


    Eintrag1~Eintrag2~Eintrag3~


    Hier könnte ich dann mit der Funktion einfach ~ zu \n machen, aber der String selbst (dialogtext) sieht eher so aus:


    EEEintrag123, sowas in der Art halt.



  • for(new i; i < strlen(string); i++)
    {
    if(string[i] == '~')
    {
    string[i] = '\n';
    }
    }

    Einmal editiert, zuletzt von Poket-Jony ()

  • eww...
    so, der Code verbessert: (ersetzt alle '~' mit '\n', Nützlicher HINWEIS: '\n' ist EIN Zeichen, deswegen so einfach machbar)

    new i = 0;
    while(string[i] != 0)
    {
    if(string[i] == '~')
    {
    string[i] = '\n';
    }
    i++;
    }



    Zu deinem Code oberhalb: (aneinanderhängen der einzelnen Teile/Rows)
    Wenn dir strcat zu komplex ist, dann verwende format (zwar etwas langsamer, aber leichter durchdenkbar)
    new dialogtext[256];
    for(new i; i != zeilen; i++)
    {
    cache_get_row(i, 2, content);
    format(dialogtext, sizeof(dialogtext), "%s%s\n", dialogtext, content); //füge vorherigen dialogtext(anfangs leer) ein und direkt dahinter content + \n
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, dialoghead, dialogtext, "OK", "");


    bin mir bis jetzt noch nicht sicher, was von den beiden du genau brauchst ..... oder beides kombiniert ? :pinch: