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 ...