String kürzen



  • Das ist sicher total einfach, aber ich krieg es einfach nicht hin:

    Ich möchte von einem CString das letzte Zeichen entfernen.

    Es handelt sich dabei um einen freigegebenen Ordner der mit dem $ hinten dran gesichert wurde.

    CString Pfad = "InstallationsOrdner$";

    Nun muss einfach dass $-Zeichen abgeschnitten werden, wobei der Name "InstallationsOrdner" variabel ist, dass heißt man weiß vorher nicht wie viele Zeichen der String beinhaltet.



  • CString classmember remove



  • Danke Unix-Tom,

    bin auch auf die Funktion gestoßen, aber hab anstatt der '', "" genutzt und daher nach anderen Möglichkeiten gesucht. 🙄

    Noch eine andere Frage, nun werden ja sämtliche ""-Zeichen aus dem String entfernt. Aber es gibt ja auch Pfade: "C:\\Programm\Ordner\\Pfad"

    Wie mache ich das, wenn ich nur das letzte "$"-Zeichen entfernen möchte? 😕



  • na wenn Du nur den letzten $ entfernen willst, schau doch noch, ob das letzte Zeichen ein $ ist und dann nimmst Du Dir nur den Teilstring bis zum vorletzten Zeichen



  • Hmm, guter Vorschlag @MuehBln! 🙂

    Hab jetzt folgendes gemacht:

    int AnzahlZeichen = NeuerPfad.GetLength(); // Die Länge ermitteln
    NeuerPfad.Delete(AnzahlZeichen-1, 1);      // Das letzte Zeichen entfernen
    

    Klappt! 🕶



  • Original erstellt von Dressman1981:
    **Hmm, guter Vorschlag @MuehBln! 🙂

    Hab jetzt folgendes gemacht:

    int AnzahlZeichen = NeuerPfad.GetLength(); // Die Länge ermitteln
    NeuerPfad.Delete(AnzahlZeichen-1, 1);      // Das letzte Zeichen entfernen
    

    Klappt! 🕶**

    Und warum nicht so

    NeuerPfad.Delete(NeuerPfad.GetLength()-1, 1);
    

    Was ist aber wenn das letzte Zeichen keine $ ist.
    Benutze dafür find bzw. reversefind.

    [ Dieser Beitrag wurde am 03.07.2003 um 20:27 Uhr von Unix-Tom editiert. ]



  • Ok Unix-Gott *g* 😃

    mach ich es doch einfach so:

    if (NeuerPfad.GetAt(NeuerPfad.GetLength()-1) == '$') NeuerPfad.Delete(NeuerPfad.GetLength()-1, 1);

    Da spar ich mir das find...



  • The nIndex parameter must be greater than or equal to 0 and less than the value returned by GetLength.



  • Hallo.

    Warum machst Du es nicht einfach so:

    pfad = pfad.Left(pfad.GetLength()-1)

    In pfad sollte jetzt alles bis auf das letzte Zeichen stehen.
    Es gibt halt viele Wege die nach Rom führen 🙂


Anmelden zum Antworten