Seite 1 von 1

Text formatiert speichern (Ausrichtung funktioniert nicht..)

Verfasst: 13. Januar 2014 19:55
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

Re: Text formatiert speichern (Ausrichtung funktioniert nich

Verfasst: 11. Februar 2014 18:05
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