Text formatiert speichern (Ausrichtung funktioniert nicht..)

Alles rund um die Programmierung mit Qt
Antworten
Basti85
Beiträge: 4
Registriert: 28. Oktober 2013 11:48

Text formatiert speichern (Ausrichtung funktioniert nicht..)

Beitrag von Basti85 »

Hi,

ich möchte in einer Textdatei 3-spaltig Rechenergebnisse abspeichern und wieder ausgeben.
1. Spalte: Beschreibung, linksbündig
2. Spalte: Ergebnis, rechtsbündig
3. Spalte: Einheit, linksbündig


Schreiben:

Code: Alles auswählen

    QFile data("Ergebnis.txt");
    if (data.open(QFile::WriteOnly | QFile::Truncate))
    {
            QTextStream out(&data);
            out
                    << fixed << qSetRealNumberPrecision (2) << left << qSetFieldWidth(20)
                    << left << "a"
                    << right << "2340.00"
                    << left << " m\n"
                    << left << "b"
                    << right << "14.50"
                    << left << " Cent\n"
               << endl;
    }
Auslesen und anzeigen:

Code: Alles auswählen

    QFile file("Ergebnis.txt");
    if (file.open(QFile::ReadOnly | QFile::Text))
    {
        QTextStream in(&file);
        ui->textBrowserAnzeige->setText(in.readAll());
    }

Was rauskommen soll:

Code: Alles auswählen

a                                 2340.00 m
b                                   14.50 Cent
Was tatsächlich rauskommt

Code: Alles auswählen

a                                 2340.00 m
               b                                  14.50 Cent
Wahrscheinlich ist das total einfach, aber ich komme mit den Textausrichtungen gar nicht klar. Hab den Code von jemand anderem übernommen, bräuchte Mal ein funktionierendes Beispiel, da ich mit der Befehlsreferenz nicht weiterkomme und auch sonst nix gefunden hab...

Vielen Dank,
bastian
Qt Creator 2.8.1
Based on Qt 5.1.1 (MSVC 2010, 32 bit)
Basti85
Beiträge: 4
Registriert: 28. Oktober 2013 11:48

Re: Text formatiert speichern (Ausrichtung funktioniert nich

Beitrag von Basti85 »

Nachdem zwar niemand geantwortet hat, ich aber inzwischen für mich ne Lösung habe:

Meine Tabellen sind jetzt mehrspaltig, dadurch stehen immer die gleichen Einheiten untereinander und unterschiedliche nebeneinander.

Code: Alles auswählen

    QFile data("Ergebnis.txt");
        if (data.open(QFile::WriteOnly | QFile::Truncate))
        {
                QTextStream out(&data);
                out
                        << fixed << qSetRealNumberPrecision (2) 
                        << "a; b"
                         << "2340.00 m;" << "14.50 Cent\n"

                   << endl;
        }
auslesen:

Code: Alles auswählen

QStringList *ergebnis_csv;
        int rowsCount = 1;
        while(!out.atEnd())
        {
            ergebnis_csv = new QStringList(out.readLine().split(";"));
            tableWidget->setRowCount(rowsCount);
            tableWidget->setColumnCount(3);

            for(int col = 0; col < ergebnis_csv->size(); ++col)
            {
                QTableWidgetItem *items= new QTableWidgetItem(ergebnis_csv->at(col));
                tableWidget->setItem((rowsCount - 1), col, items);

            // Zahlen rechtsbündig
                QString test = ergebnis_csv->at(col).left(1);
                bool ok;
                int value = test.toInt(&ok);
                if ( ok )
                {
                    items->setTextAlignment(0x0082);
                }
            }
            rowsCount++;
        }
        tableWidget->resizeColumnsToContents();
Vielleicht hilfts ja noch wem außer mir... ;)
viele Grüße basti
Qt Creator 2.8.1
Based on Qt 5.1.1 (MSVC 2010, 32 bit)
Antworten