String teilen

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 Leute!


    ich muss einen String teilen, bei dem der Delimiter länger als ein Buchstabe ist, um genau zu sein soll mein DeIlimiter "~n~" sein. Weiß jemand die dazugehörige Funktion bzw. wo schon jemand so eine Funktion gescriptet hat?


    Danke.

  • Google mal nach Split String oder String Splitten.


    Funktion:


    stock split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }

  • Wenn du schon versuchst zu helfen, dan lies vorher mal genau den ersten Post durch. Ich habe extra erwähnt das mein delimiter mehrere Buchstaben hat und dieses split von dir kann nur einen überprüfen, wenn du genau schaust.

  • Sry, aber jetzt verlier ich langsam meine Geduld, ich habe geschrieben mein delimiter und der delimiter ist das Trennzeichen, was bei dir das Komma ist, bei mir ist der Delimiter aber größer als ein Zeichen. Bitte lies und denke vorher nach. EIn Beispiel wenn du immernoch nicht verstanden hast:


    String: ad---rgerg---erggerg---ergergerg
    Delimiter: ---
    Entstandene Strings: 4

  • Ach sorry, ich war nicht ganz dabei, ja jetzt habe ich es verstanden... mein Fehler tut mir leid.


    new TestStr[64];
    new FinalResult[2][64];

    strins(TestStr, "Hallo wie geht~n~es dir", 0, 64);
    new strPos = strfind(TestStr, "~n~");
    strmid(FinalResult[0], TestStr, 0, strPos);
    strmid(FinalResult[1], TestStr, strPos+3, strlen(TestStr));


    Damit kannst du sicherlich etwas anfangen, eine Funktion kannste ja damit sicherlich selber erstellen, dürfte nicht schwer sein.


    FinalResult[0] beinhaltet: Hallo wie geht
    und
    FinalResult[1] beinhaltet: es dir.



    PS: Ein bisschen mehr Freundlichkeit wäre auch nicht schlecht, ich versuche zu helfen und werde hier unfreundlich angemacht....

  • Danke, das wären gute Beispiele gewesen, aber ich weiß leider nicht bei meinem String wir oft ~n~ vorkommt, also kann ich beides nicht verwenden, habe mal versucht die split funktion so umzuschreiben dass es mit einem delimiter funzt der mehr Zeichen hat, falls er funktioniert, stell ich die Funktion hier rein, da ich heute gut drauf bin^^


    Falls sie nicht funzt ist mir grade so ne extrem einfache möglichkeit eingefallen, wie ich es mit normalen split verwenden kann, einfach vorher str-replace durchführen hahahah xD