Etwas aus einem String löschen

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
  • Guten Tag,


    Ich hatte vor ein Fraktionssystem mit "Permissions" zu machen.
    Das heißt das z.B bei einem Befehl abgefragt wird ob die Fraktion diese Permission hat und wenn ja wird der Befehl ausgeführt.
    Man soll die Permissions Ingame löschen und erstellen können.
    Nur jetzt hab ich ein Problem, ich weiß nicht wie ich einen Teil aus einem String entfernen kann, ohne zu wissen wo dieser Teil des Strings sich befindet.


    Der String zieht z.B so aus:
    "use.tazer\nuse.cuff\nuse.arrest" wie könnte ich jetzt z.B "use.cuff" aus dem String löschen, ohne zu wissen wo sich der Teil davon befindet?

  • du suchst use.cuff via strfind. Damit weißt du an welcher Position dein Substring anfängt. Dann musst du noch die länge des Substrings via strlen("use.cuff") rausfinden und da noch den Zeilenumbruch draufrechnen ("\n")


    Heißt wenn strfind dir z.B. Position 5 angibt, steht im 6. Zeichen "u" (von use.cuff) usw.


    Insgesamt musst du dann also die Zeichen
    6 bis 15 (einschließlich) löschen ( use.cuff\n ist 10 Zeichen Lang)

  • Also z.B so?



    case DIALOG_GIVEPERMS_LIST:
    {
    if(response)
    {
    new long = strlen(inputtext);
    new position = strfind(Fraktionen[FID[playerid]][permissions],inputtext,true)+2;
    new pos2 = position+long;
    strdel(Fraktionen[FID[playerid]][permissions],position,pos2);
    return 1;
    }
    }

  • Ich würde nicht den Bezeichner long für eine Variable wählen, da das eigentlich ein eigener Datentyp ist, aber Pawn war was das angeht schon immer komisch.


    new length= strlen(inputtext)+2; //( davon ausgehend, dass inputtext hier die permission identifizieren soll)
    new position = strfind(Fraktionen[FID[playerid]][permissions],inputtext,true);
    new pos2 = position+length;
    strdel(Fraktionen[FID[playerid]][permissions],position,pos2);
    return 1;