[wxWidgets] string "wildcard" bearbeiten



  • hi leute,

    hab folgendes problem: plump gesagt ich habe eine liste mit infos die anzeigt was man eingegeben hat über verschiedene textctrl's... jetzt möchte ich in einem feld z. b. test[1-4] eingeben was in der liste 4 einträge zur folge hätte in spalte xy mit test1, test2, test3 und test4...

    wieder plump erklärt, gibt es ne einfachere methode als sich den string "test[1-4]" zu nehmen ihn "mühsam" zu zerlegen konvertierung der zahlen durchzuführen und somit das was man will zusammenbaut...?

    oder einfach gesagt... wie würdet ihr das problem lösen 😃


  • Mod

    Hm, also für das Textparsing würde ich boost::spirit oder einen Lexer verwenden,
    wxWidgets hat zwar auch einen Stringtokenizer, aber ich hab damit noch nicht gearbeitet,
    und ich weiss auch nicht ob er für solche Aufgaben geeignet ist.
    Kommt natürlich auch darauf an was du genau machen willst, für "test[1-4]" lässt sich auch
    recht einfach ein eigener Parser bauen, der dann halt nur nach den [] sucht, und jeweils die
    Zahlen ausliest.

    Mit spirit sieht das ungefähr so aus:

    using namespace boost::spirit;
    std::string text;
    int start,end;
    rule<> texttoken = alnum_p[assign_a(text)] >> '[' >> int_p[assign_a(start)] >> '-' >> int_p[assign_a(end)] >> ']';
    if(parse("test[1-4]",texttoken).full)
        // text erfolgreich geparsed.
    

    phlox


Anmelden zum Antworten