Ordner/dateien durchsuchen
-
Guten Abend liebe cpp Gemeinde,
ich habe folgendes Problem:
Ich möchte mehrer Textdateien durchsuchen. und zwar will ich nach einer bestimmten Begriff-folge suchen, und mir dann den Text was dahinter folgt in einer neuen Textdatei speichern.
kurz:
suche in allen Textdateien nach "Gutschein:" und dann was danach kommt bis zu einem "." in eine neue Textdatei speichern.Leider weiss ich nicht wie ich das verneunftig realisieren kann.
Mir wurde geraten, das ganze mit regex und der lib Boost (boost.org) zu machen.
Ich hab mir das mal dort durchgelesen und gefunden, dass das ganze mit egrep gehen kann, doch ich bin noch nicht zu einem ergebnis gekommen...
ich freue mich auf eure antworten
vielen dank im Voraus
grussrory
-
Rory schrieb:
ich freue mich auf eure antworten
Auf welche Frage?
-
Meine Frage wäre, ob jemand vllt. ein gutes tutorial oder einen ansatz für eine regex suche hat?
merci
gruss
-
Klar, hier hast du eine ganze Liste von Beispielen:
-
Hmm. Für eine solche einfache Suchvorschrift würde ich nicht gleich Regex rannehmen. Finde ich ein wenig Overkill. Da reicht ja ein einfaches Suchen. Und dann nach einen Punkt suchen. Fertig.
Obwohl jetzt gerade nicht weiss, in wie weit Regex optimiert ist und ob es bei solchen einfachen Fällen vielleicht sogar schneller, als das normale
findist. Weiss da jemand gerade was?
-
also ich weiss nicht ob ein find() schneller ist,
ich hab ein bischen probleme mit der lib boost/regex und dem compilen ;).
use linux.
einfacher code:
#include <boost/regex.hpp> #include <string> bool test (const std::string s) { static const boost::regex e("bla"); return regex_match(s, e); } int main () { test ("bla"); return 0; {diese einfach regex abfrage führt bei mir zu vielen Fehlern....
Es sind so viele Fehler dass ich sie hier nicht auflisten kann
hat jemand eine idee woran das prinipiell liegen kann?
vielen dank
gruss
-
antoa schrieb:
also ich weiss nicht ob ein find() schneller ist,
ich hab ein bischen probleme mit der lib boost/regex und dem compilen ;).
use linux.
Von nem Linuxer hätte ich ein grep erwartet
-
1. Das const beim Funktionsparameter macht keinen Sinn.
2. Die letzte geschweifte Klammer ist verkehrt herum.Ansonsten poste einfach mal die ersten paar Fehlermeldungen. Die reichen meist.
-
Huhu,
naja einen Fehler hättest du sicher posten können

Du kannst Boost::Regex nicht benutzen, wenn du nichts kompiliert hast.
Sprich:
Du musst boost builden und die .a libs linken. Sonst funzt nichts.
Der Packet-Installer sollte dir diese Arbeit abnehmen. ( Das Builden )
Hier findest du nähere Informationen: