String bearbeiten



  • Hallo!
    Ich habe eine Frage:
    gibst doch irgenwie einfache Losung?

    Ich habe ein String:
    z.B.
    AnsiString Text = "abcd efg,hij"

    Wie kann ich von dieses String Leerzeichen(" ") und Koma(",") ausschneiden,
    das das am ende so was bekomme:
    Text = "abcdefghij"

    (Wie bei VB:
    Text = Replace(Text, " ", "")
    Text = Replace(Text, ",", ""))

    Danke.



  • Hallo

    dazu mußt du wohl eine eigene Funktion schreiben, die die AnsiString-Funktion AnsiPos und SubString nutzt :

    AnsiString Replace(AnsiString Origin, AnsiString Old, AnsiString New)
    {
      int Pos;
      AnsiString Result;
    
      // Origin nach Result kopieren, dabei alle Vorkommen von Old durch New ersetzen
      while ((Pos = Origin.AnsiPos(Old)) > 0) // Solange Old gefunden ...
      {
        Result = Origin.SubString(1, Pos -1) + New; // .. bis Old übernehmen und New kopieren
        Origin.Delete(1, Pos -1 + Old.Length()); // ... in Origin bis einschließlich Old löschen
        }
      Result = Result + Origin; // Rest übernehmen
      return(Result);
      }
    

    bis bald
    akari


  • Mod

    Hallo

    oder StringReplace verwenden

    MfG
    Klaus



  • Danke für schnelle Antwort.

    Aber wenn ich StringReplace verwende, was für TReplaceFlags Flags muss ich eingeben?

    Wenn ich "rfReplaceAll" schreibe, dann kommt Fehler:
    E2034 Konvertierung von 'SysUtils__54' nach 'TReplaceFlags' nicht möglich
    E2342 Keine Übereinstimmung des Typs beim Parameter 'Flags' ('TReplaceFlags' erwartet, 'SysUtils__54' erhalten)

    Danke



  • Hallo

    Zitat aus BCB-Hilfe

    enum Sysutils__93 { rfReplaceAll, rfIgnoreCase };
    typedef Set<Sysutils__93, rfReplaceAll, rfIgnoreCase> TReplaceFlags;

    TReplaceFlags ist also ein Set, das sowohl die Option rfReplaceAll als auch rfIgnoreCase enthalten kann.
    Um das anzuwenden, schreibst du

    StringReplace(Text, Old, New, TReplaceFlags() << rfReplaceAll);
    

    bis bald
    akari



  • Hallo akari!

    Supper!

    Danke!



  • FAQ und Suchfunktion benutzen!
    Wie oft sollen wir dir das noch sagen?


Anmelden zum Antworten