QRegExp stoppt nach einem Treffer?!
Verfasst: 5. April 2010 02:14
Hi ich hab ein kleines Problem mit QRegExp und komm ned auf den Fehler.
Also ich würde gerne die Datei /proc/partitions einlesen, was auch klappt.
Wenn ich jetzt aber die Partitionen mit QRegExp filtern will bricht mit QRegExp nach dem ersten Treffer ab!
Sprich QRegExp findet sda1 und schluss, dabei sind in der Datei bzw im QString noch sda2, sda3, sdb1, sdc1 usw usf...
Kann mir jemand helfen?
Mein Code sieht folgender massen aus:
Und die Ausgabe ist... [/code]
Also ich würde gerne die Datei /proc/partitions einlesen, was auch klappt.
Wenn ich jetzt aber die Partitionen mit QRegExp filtern will bricht mit QRegExp nach dem ersten Treffer ab!
Sprich QRegExp findet sda1 und schluss, dabei sind in der Datei bzw im QString noch sda2, sda3, sdb1, sdc1 usw usf...
Kann mir jemand helfen?
Mein Code sieht folgender massen aus:
Code: Alles auswählen
void myDialog::getPartitions() {
QFile f("/proc/partitions");
f.open(QIODevice::ReadOnly);
QString device_list = f.readAll();
QRegExp rx("\\w+\\d+\n");
rx.indexIn(device_list);
std::cout << device_list.toStdString() << std::endl;
std::cout << rx.captureCount() << std::endl;
std::cout << rx.cap(0).toStdString() << std::endl;
f.close();
}Und die Ausgabe ist...
Code: Alles auswählen
Starte /home/pycoder/KCrypt/KCrypt...
major minor #blocks name
8 0 488386584 sda
8 1 305104896 sda1
8 2 201372 sda2
8 3 41953747 sda3
8 4 1 sda4
8 5 4192965 sda5
8 6 136929964 sda6
8 16 312571224 sdb
8 17 312568641 sdb1
8 32 312571224 sdc
8 33 312568641 sdc1
8 48 312571224 sdd
8 49 312568641 sdd1
8 64 312571224 sde
8 65 312568641 sde1
252 0 41951727 dm-0
9 0 937705728 md0
252 1 4192965 dm-1
252 2 136927944 dm-2
252 3 937703708 dm-3
252 4 305104896 dm-4
0
sda1
/home/pycoder/KCrypt/KCrypt beendet, Rückgabewert 0