Hallo,
Ich möchte einen String:
"aa/bb/cc" -f -g "/aa/gg jj ii" -ff
so zerlegen, das an leerzeichen getrennt wird, aber die sachen in anführungszeichen zusammen bleiben, d.h. später soll
"aa/bb/cc"
-f
-g
"/aa gg jj ii"
-ff
enthalten sein???
ideen??? regexp??
Qstring List Split....
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das habe ich dir doch in den anderen Thread schon gezeigt.
Ein RegExp würde auch gehen, aber vorkauen willl Dir das sicher keiner - musst schon selbst ein wenig überlegen wie die aussehen könnte... danach kann man ja evtl. was zu sagen.
Ein RegExp würde auch gehen, aber vorkauen willl Dir das sicher keiner - musst schon selbst ein wenig überlegen wie die aussehen könnte... danach kann man ja evtl. was zu sagen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
qt 4 sourcen...
ja danke mal... bin nich sehr fit in regulären ausdrücken. werds dann wahrscheinlich mit einer schleife machen und mir den string selbst zerpflücken...
den at4 souce finde ich grad auch nicht, und die qt seite ist im moment arschlahm!!
den at4 souce finde ich grad auch nicht, und die qt seite ist im moment arschlahm!!
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Dann nimm einfach QString(List)::split() und gehe alle elemente durch. Wenn sie mit '"' beginne, aber nicht mit '"' enden, füge dieses und das nächste Element zusammen und schau wieder ob es jetzt mit '"' endet...
Code: Alles auswählen
QStringList s1 = QString::split(...);
QStringList s2;
for(int i = 0; i < s1.count(); i++) {
if(s1[i].startWith('"')) {
if(s1[i].endWith('"') {
s2.append(s1[i]);
} else {
QString s = s1[i];
for(int j = i+1; j < s1.count(); j++) {
s += s1[j];
if (s.endsWith('"')) {
s2.append(s);
break;
}
}
} else
s2.append(s1[i]);
}
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
jogibear9988
- Beiträge: 12
- Registriert: 17. April 2006 14:04
danke...
danke... musste es nur noch ein bischen ändern, nutze qt 3:
Code: Alles auswählen
QStringList lst( );
QStringList s2;
for(int i = 0; i < lst.count(); i++)
{
if(lst[i][0] == '"')
{
if(lst[i][lst[i].length()-1] == '"')
{
s2.append(lst[i]);
}
else
{
QString s = lst[i];
s += " ";
for(int j = i+1; j < lst.count(); j++)
{
s += lst[j];
if (s[s.length()-1] == '"')
{
s2.append(s);
i=j;
break;
}
else
s += " ";
}
}
}
else
s2.append(lst[i]);
}
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: