Qt - QString - rozdzielenie z seperatorów i ze znaków specjalnych

0

Od kilku dni walczę z rozdzielaniem seperatorów i znaków specjalnych.

Struktura pliku CSV wygląda mniej więcej tak (tu jest tylko przykładowa ilość wierszy i kolumn)

Tekst1;44
Tekst2;99
Wyrażenie;77

po wczytaniu pliku do klasy obiektu typu QStringList wygląda tak

QStringList Matrix;
Matrix << ("Tekst1;44\n") << ("Tekst2;99\n") << ("Wyrażenie;77\n");

Co odpowiada macierzy 3x2

i teraz pytanie jest takie. W jaki sposób rozdzielić to ze znaków ; oraz \n w taki sposób aby wpisać zawartość do obiektu typu QString i otrzymać wynik w takiej postaci

"Tekst1","44"
"Tekst2","99"
"Wyrażenie","77"

Czyli

QString field;
field[0][0]={"Tekst1"};
field[0][1]={"44"};

field[1][0]={"Tekst2"};
field[1][1]={"99"};

field[2][0]={"Wyrażenie"};
field[2][1]={"77"};

Kodu nie pokażę, bo w sumie nie daleko zaszedłem...

1

QString::split()

Nie wiem jak wczytujesz, i czy chcesz zakładać, że zawsze będą 2 kolumny w linii, ale \n na końcu możesz sobie usunąć używając QString::trimmed()

0

@zkubinski: tu nie ma za bardzo co kombinować. Splitujesz wg regexa zamiast po znaku i jazda: split(const QRegExp &rx, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
https://stackoverflow.com/questions/8397098/qstring-splitting-multiple-delimiters
EDIT: u Ciebie regex będzie - na oko - w tym stylu QRegExp sep("[\n|;]");
No i możesz split behavior wybrać jako SkipEmptyParts, poza tym - bez filozofii.

1 użytkowników online, w tym zalogowanych: 0, gości: 1