Zeichen von CString löschen



  • Hi.
    Ich hab mal wieder ein Problem.

    Ich habe einen CString. In dem steht z.b. "%%datapath%%blub.txt"
    Nun möchte ich das ein % auf jeder Seite gelöscht wird.
    D.h. das Ergebnis soll "%datapath%blub.txt" sein.

    Allerdings muss es egal sein ob es "%%%...%%%..." oder "%%...%%..." ist, es darf nur immer ein Zeichen auf jeder Seite weggenommen werden.

    Ich habs schon mit Replace("%%", "%") probiert. Aber das ist ja wieder abhängig wie viele % ich da hab. Tokenize macht alle weg. Und Remove auch.
    Hat vll jmd ne Idee wie ich das bewerkstelligen kann?



  • Gut zielen (jeweils das erste % und dahinter das erste andere Zeichen finden und den Bereich dazwischen löschen) oder entsprechend oft austeilen:

    while(str.Replace("%%","%")>0);
    


  • Ich würde mit Find und FindReverse arbeiten und die entsprechenden Teile mit Mid, Left bzw. Right rauskopieren.


  • Mod

    IMHO ist
    str.Replace("%%","%"); Die richtige Wahl.

    @cstoll: Ist die while Schleife nicht zuviel?

    Die Frage ist was bedeutet es wenn 2 %% Zeichen kommen? Wie ist die genaue Regel? Wann darf nur 1 % Zeichen vorkommen.

    str.Replace verwandelt alle doppelten %% in ein einfaches %.

    %%Text%% wird also zu %Text%
    %%%Text%%% wird also zu %%Text%%
    %%%%Text%%%% wird ebenfalls zu %%Text%%



  • Martin Richter schrieb:

    %%%Text%%% wird also zu %%Text%%
    %%%%Text%%%% wird ebenfalls zu %%Text%%

    Und genau da liegt imho das Ploblem, weil %%%Text%%% rauskommen soll.
    "Immer nur ein % weg, egal wie viele da stehen."



  • Martin Richter schrieb:

    str.Replace verwandelt alle doppelten %% in ein einfaches %.

    %%Text%% wird also zu %Text%
    %%%Text%%% wird also zu %%Text%%
    %%%%Text%%%% wird ebenfalls zu %%Text%%

    Und so wie ich Maks verstanden habe, reicht ihm das nicht - die while-Schleife dort oben verkürzt den Text zyklisch so lange weiter, bis keine doppelten % mehr vorkommen.



  • 3 Leute, 3 Interpretationen 😮



  • Ich würde es wie Martin machen. Alles in eine schleife packen und das so lange durchlafen lassen, bis du dein gewünschtes Format hast. Sieht nämlich nach einem Dateinpfad aus und kommen zwischendurch selten "%"-Zeichen vor.


Anmelden zum Antworten