wiederkehrende Strings filtern



  • Hi, ich möchte aus einem CString den ich eingelesen habe gerne
    immer wiederkehrende Passagen auslesen.

    Mein String sieht z.B. so aus:

    "zielmenge","120"-&wertbereich="1234"#Textbereich-89?wertbereich="90".usw

    Ich müsste alle Zahlen aus dem "wertbereich" herausziehen.Leider gibt es in
    der Datei außer für den wertbereich keinerlei feste Logik im Satzaufbau.

    Nun war eine Überlegung das mit .Find zu erledigen. Oder gibt es bessere
    Wege dafür? Die Datei aus der ich den String bilde, wird 1x in der Woche
    gelesen und ist immer so um die 30MB groß.



  • Leider gibt es in der Datei außer für den wertbereich keinerlei feste Logik im Satzaufbau.

    Bist du da ganz ganz sicher? Vermutlich gibt es viele komische Regeln, mit denen man aber doch irgendwie irgendwas anfangen kann. Aber gar keine klingt doof. Dann dürfte ja z.B. auch wertbereich="42" drinstehen, obwohl es gar kein "Wertbereich" ist.
    Falls es wirklich so ist (gar keine Regeln): wie schlimm sind "false positives"?

    Ich müsste alle Zahlen aus dem "wertbereich" herausziehen.
    (...)
    Nun war eine Überlegung das mit .Find zu erledigen. Oder gibt es bessere
    Wege dafür?

    Kann man so nicht sagen, dafür gibst du zu wenig Informationen preis. Zumindest müsste man wissen wie die Regeln für den "Wertbereich" nun genau aussehen.

    Die Datei aus der ich den String bilde, wird 1x in der Woche
    gelesen und ist immer so um die 30MB groß.

    Naja, der Teil sollte ja kein Problem sein. 30MB sind nix, das kannst du einfach in einen einzigen String packen und dann damit arbeiten.

    ps: eine andere Möglichkeit wäre Regular-Expressions zu verwenden. Boost.Regex ist relativ mächtig und relativ einfach zu bedienen. Der gesamte Code würde sich damit auf ein paar (zig) Zeilen beschränken.


Anmelden zum Antworten