prob beim matchen
Verfasst: 18.10.2010, 16:19
Hallo Leute!
Ich weis nicht, ob ich hier richtig bin, da es mein erster Forum eintrag ist! Ich brauch aber ein bisschen hilfe und wolltes deshalb versuchen!
Ich habe folgendes problem. Ich importiere aus einer .csv-Datei einen Datensatz, diesen speichere ich in einem String ab und möchte diesen dann mit einem regex quasi spaltenweise durchsuchen. Sprich in dem String sind eine Reihe von Zahlen, getrennt mit einem Semikolon, gespeichert, was ich nun möchte, die Zahlen einzeln(spaltenweise) aufrufen.
wstring str = L"([\\w*\\-,\\.\\s*]+)\\s*;?\\s*";
boost::wregex expression(str, boost::regex::icase);
boost::match_results<wstring::const_iterator> match;
.
.
.
for(...){
boost::regex_search(line , match , expression);
for ((unsigned) int j=1; j < 7(oder match.size()) ; j++) {
wstring imp_vor ( match[j].first, match[j].second ); // der benötigte Ausdruck(Spalten-Wert) aus dem string "line"
.
.
.
Der Fehler tritt jetzt bei imp_vor auf und zwar wird dort nur der erste durchlauf der for-Schleife etwas reingeschrieben, die weiteren durchläufe bleibt imp_vor leer.
Was ist da falsch? Oder gibts es einen anderen Weg, wie ich Spaltenweise, also einen einzelnen Wert in dem string aufrufen kann?
Ich habe da noch ein 2. rangiges Problem im dem Quelltext und zwar wenn ich in der For-Schleife statt der 7 match.size() schreibe bekomme ich warning C4018 beim kompilieren. wenn ich dann j aber als unsigned int deklaliere, wird j nicht hoch gezählt. Wäre schön wenn mir Jemand auch dafür eine Lösung parat hätte. Dies habe ich oben mit Blau markiert!!!
Ich hoffe mir kann Jemand bei meinem Problem helfen!!
ich bedanke mich schon mal im Voraus!!!
gruß
zois
Ich weis nicht, ob ich hier richtig bin, da es mein erster Forum eintrag ist! Ich brauch aber ein bisschen hilfe und wolltes deshalb versuchen!
Ich habe folgendes problem. Ich importiere aus einer .csv-Datei einen Datensatz, diesen speichere ich in einem String ab und möchte diesen dann mit einem regex quasi spaltenweise durchsuchen. Sprich in dem String sind eine Reihe von Zahlen, getrennt mit einem Semikolon, gespeichert, was ich nun möchte, die Zahlen einzeln(spaltenweise) aufrufen.
wstring str = L"([\\w*\\-,\\.\\s*]+)\\s*;?\\s*";
boost::wregex expression(str, boost::regex::icase);
boost::match_results<wstring::const_iterator> match;
.
.
.
for(...){
boost::regex_search(line , match , expression);
for ((unsigned) int j=1; j < 7(oder match.size()) ; j++) {
wstring imp_vor ( match[j].first, match[j].second ); // der benötigte Ausdruck(Spalten-Wert) aus dem string "line"
.
.
.
Der Fehler tritt jetzt bei imp_vor auf und zwar wird dort nur der erste durchlauf der for-Schleife etwas reingeschrieben, die weiteren durchläufe bleibt imp_vor leer.
Was ist da falsch? Oder gibts es einen anderen Weg, wie ich Spaltenweise, also einen einzelnen Wert in dem string aufrufen kann?
Ich habe da noch ein 2. rangiges Problem im dem Quelltext und zwar wenn ich in der For-Schleife statt der 7 match.size() schreibe bekomme ich warning C4018 beim kompilieren. wenn ich dann j aber als unsigned int deklaliere, wird j nicht hoch gezählt. Wäre schön wenn mir Jemand auch dafür eine Lösung parat hätte. Dies habe ich oben mit Blau markiert!!!
Ich hoffe mir kann Jemand bei meinem Problem helfen!!
ich bedanke mich schon mal im Voraus!!!
gruß
zois