AnsiString vergleichen & Joker



  • hei

    möchte zwei Ansistring vergleichen. Der zweite soll einen Joker enthalten.
    ist hier AnsiCompare... geeignet ?

    bis bald
    dieleena



  • Nein.
    Ich kenne hier keine Funktion für AnsiString, die reguläre Ausdrücke beherrscht. Mir fällt für sowas erstmal nur boost::regex ein.
    Wenn es nur 1 beleibiges Zeichen sein soll, kannst du das auch nachbauen.



  • Naja sowas wäre mal abgesehen von der Wahl des Jokers ja auch kein großes Ding selbst zu schreiben:

    #define JOKER (char)0x01
    
    AnsiString str1="Hello World";
    AnsiString str2="Hallo World";
    str2[2]=JOKER; //str2 sieht dann so aus: "H\x01llo World"
    
    int jPos=str2.Pos(JOKER);
    
    if((str1.SubString(1,jPos-1)==str2.SubString(1,jPos-1)) &&
       (str1.SubString(jPos+1,str1.Length()-jPos)   == str2.SubString(jPos+1,str2.Length()-jPos)))
      //Strings sind unter Berücksichtigung des Jokers gleich
    else
      //Strings sind nicht gleich
    

    Bei mehr als einem Joker musst du halt ein bisschen durch die Gegend rechnen 😉



  • hei
    vielen Dank für die guten Infos. Unter umstande existieren 2 Joker. Den Rest muß ich selber machen
    bis bald
    dieleena 👍 👍 👍


Anmelden zum Antworten