Wortsequenz überprüfen



  • Heho,

    lese ein Format aus, welches als textdatei vorliegt und aus einzelnen Blöcken besteht welche immer in der Form "[Begin Action xyz]" anfangen, wobei xyz eine natürliche Zahl ist.
    Ich würde nun gerne die Datei stückweise einlesen, eben von einem solchen Tag bis zum nächsten.
    Dafür würde ich gerne eine Zeile auf genau die oben genannte Abfolge überprüfen:

    Erst "[", dann "Begin" gefolgt von Leerzeichen, dann "Action", wieder Leerzeichen, die Zahl und das Schlusszeichen "]".

    Wie würde man das halbwegs elegant lösen? Gibt es da vielleicht schon etwas in der Art in der STL?



  • scanf sollte das können, aber das ist natürlich eine böse C-Funktion. Abgesehen davon kann man das scanf nicht für benutzerdefinierte Datentypen erweitern, was tatsächlich etwas doof ist. Ich habe hier vor längerer Zeit mal einen kleinen Ansatz vorgestellt, mit dem das recht simpel realisierbar sein sollte: http://www.c-plusplus.net/forum/300414
    Ansonsten gibt's auch noch boost::spirit, das ist eine ganze Ecke dynamischer.
    Wie man das wirklich Elegant mit Streams macht.. keine Ahnung.. Werner wird sich schon was einfallen lassen. 😃



  • Scanf hmmm ich probiers mal, aber wie du schon sagst: igitt.
    Danke für den Hinweis auf deinen Ansatz, wirkt aber für mein simples Problem überdimensioniert :D(auf den ersten blick zumindest)



  • Muss natürlich in meinem Fall sscanf sein, da ich immer ne Zeile auslesen würde(in nen string) und den dann untersuche.



  • Überdimensioniert? Das sind quasi 100 Zeilen Code, die kannste überall in einen Header packen. Haste dir mal angesehen was in den ganzen C++ io Headern drin steht? Also unfertig hätte ich gelten lassen, aber überdimensioniert? :p


Anmelden zum Antworten