Wildcards in Suchmaske...



  • Morgen,

    habe mir eine Suchmaske (dort kann ein CString eingegeben werden) programmiert und moechte, dass diese Suchmaske auch sog. Wildcards (also zumindest den * dazu benutzen kann, um seine Suche zu vereinfachen) unterstuetzt:

    Eingabe: (nur ein Beispiel)
    OP*

    Daraufhin sollte mein Programm also alles finden, das mit OP beginnt - hoffe, Ich habe mich einigermassen verstaendlich ausgedrueckt 😉

    Hat jemand von Euch schon mal so etwas programmiert (Ich denke, es laeuft auf eine Art Parser hinaus, der mir den CString zeichenweise einliest...) 😕

    Waere super, wenn mir jemand einen Tip geben koennte, wie man so etwas am besten macht...

    Danke
    -Jackler



  • Hat keiner eine Idee ??? 😮



  • Hab' die Loesung bei http://www.codeproject.com gefunden:

    Benutzung:

    if (wildcmp("bl?h.*", "blah.jpg")) {
    //we have a match!
    } else {
    //no match =(
    }
    

    Funktion:

    int wildcmp(char *wild, char *string) {
    char *cp, *mp;
    
    while ((*string) && (*wild != '*')) {
    if ((*wild != *string) && (*wild != '?')) {
    return 0;
    }
    wild++;
    string++;
    }
    
    while (*string) {
    if (*wild == '*') {
    if (!*++wild) {
    return 1;
    }
    mp = wild;
    cp = string+1;
    } else if ((*wild == *string) || (*wild == '?')) {
    wild++;
    string++;
    } else {
    wild = mp;
    string = cp++;
    }
    }
    
    while (*wild == '*') {
    wild++;
    }
    return !*wild;
    }
    

    Waere doch was fuer die FAQ, oder ? 😉

    Ciao
    -Jackler



  • Wenn dann in C++, die Lösung ist nämlcih reinstes C++ 😉
    Und dahin pack ich es jetzt auch ...


Anmelden zum Antworten