String zerpflücken



  • Hallo,

    ich hab mal wieder ein dämliches Problem...

    ich hab ein txt file, welches so ausschaut...

    420 GBAN EN 1 HIER STEHT TEXT,
    420 GBAN EN 2 DA IS AUCH EIN TEXT
    420 GBAN EN 3 CtorN
    030 GBAN EN 1 "NOCH EN TEXT;"
    030 GBAN EN 2 "FWIEDER TEXT ; "

    des soll danach so ausschaun...

    420 HIER STEHT TEXT, DA IS AUCH EIN TEXT CtorN
    030 "NOCH EN TEXT;" "FWIEDER TEXT ; "

    also im prinzip nur die zahl vorne und hinten den text zusammen fügen. die zeilen der texte sind durchnummeriert. also es können 1-8 textzeilen sein, die aneinander gereit werden müssen.

    würds gerne aus der txt datei als string einlesen und dann irgendwie die entsprechenden texte mit leerzeichen dazwischen zambaun.

    gruß
    thomas



  • Schau dir mal Regular Expressions an. Damit geht das ganz komfortabel. Ich benutz die Regex in den Boost Libraries http://www.boost.org



  • was soll man denn da mit regexp gut machen können?
    Ich würde jede zeile einlesen und nach dem ersten leerzeichen trennen. Dann mit boost::lexical_cast in int umwandeln und in einer map<int, string> speichern. An den Wert des chlüssels wird der letzte Text angehängt. Zum Schluss dann alles wieder in eine datei schreiben



  • edit, oh mist doppelpost, sorry



  • Maxi schrieb:

    was soll man denn da mit regexp gut machen können?
    Ich würde jede zeile einlesen und nach dem ersten leerzeichen trennen. Dann mit boost::lexical_cast in int umwandeln und in einer map<int, string> speichern. An den Wert des chlüssels wird der letzte Text angehängt. Zum Schluss dann alles wieder in eine datei schreiben

    man kann mit regex das was du beschrieben hast sehr vereinfachen. hab leider keine zeit, das genauer zu erklären.

    regex auf eingelesenen string anwenden -> matches durchiterieren und in datei schreiben.



  • Klar kann man das. Ich fand aber den Syntax von Regex ein wenig gewöhnungsbedürftig. Die Einarbeitung dauert auch ein wenig. Um ein paar simple Strings immer nach den selben Muster zu teilen braucht man es glaube ich nicht.



  • regex sind für sowas total übertrieben



  • Wenn man es bei sowas verwendet, ist es allerdings später, wenn man es wirklich braucht, einfacher, regex anzuwenden.

    sorry, war ja nur ein vorschlag mit den regex.



  • hi

    danke für die antworten.

    werd mich da mal schlau machen.

    gruß


Anmelden zum Antworten