wie bring ich den Inhalt von QStrinList auf den Texteditor

Alles rund um die Programmierung mit Qt
Antworten
Igell
Beiträge: 27
Registriert: 11. November 2009 20:36

wie bring ich den Inhalt von QStrinList auf den Texteditor

Beitrag von Igell »

Hallo,
Ich Habe Mir ein Fleiß Programm geschrieben.
Es öffnet eine txt Datei und gibt sie auf dem erstem QTextEdit aus.
Dazu habe ich mir ein eigenes Signal gemacht:

Code: Alles auswählen

void test::open_dialog()
{
    QString str = QFileDialog::getOpenFileName(this, "Bitte eine Datei auswählen", QDir::homePath(), "Dokumente (*.txt)");
    if(!str.isEmpty())//isEmpty == istLeer ? ja == true, nein == flash
        {
           QFile filexx(str);
            if(filexx.open(QIODevice::ReadOnly | QIODevice::Text))
                {
                    te->setPlainText(filexx.readAll());
                    this->setWindowTitle(str);
                    this->file = &filexx;
                }
        }
}
Klappt auch soweit.
Nun soll alles auf Knopfdruck im zweitem QTextEdit sortiert erscheinen.
Bevor ich mir aber nun einen eigenden sortier Algorithmus schreibe habe ich hier : http://www.qtforum.de/forum/viewtopic.php?t=10475
QSringList::sort() gefunden.

Nun lässt sich aber eine QStringlist nicht in den Editor einfügen.
Mein versuchter Slot :

Code: Alles auswählen

void test::sortir()
{
   QStringList sList(file->readAll());
   sList.sort();
   QFile f1(sList);

}
Und nun komm ich nicht weiter.
Hat jemand eine Idee ?
drizzt
Beiträge: 29
Registriert: 9. Oktober 2009 13:37

Beitrag von drizzt »

QFile f1(sList);
ist nicht richtig:
QFile::QFile ( const QString & name )

Constructs a new file object to represent the file with the given name.



Mit QTextStream kannst du Strings in eine Datei einfügen:

Code: Alles auswählen

QFile data("output.txt");
 if (data.open(QFile::WriteOnly | QFile::Truncate)) {
     QTextStream out(&data);
     out << "Result: " << qSetFieldWidth(10) << left << 3.14 << 2.7;
     // writes "Result: 3.14      2.7       "
 }
Igell
Beiträge: 27
Registriert: 11. November 2009 20:36

Beitrag von Igell »

Wenn Ich nun aber den Text mithilfe von QTextStream aus der Datei hole ist da wider das Problem des sortierens.
Den Text übergebe ich nur in die Klasse QStringlist damit ich sort() verwenden kann.
drizzt
Beiträge: 29
Registriert: 9. Oktober 2009 13:37

Beitrag von drizzt »

kannst du vllt nochmal genau erläutern, was du tun willst?
weil iwie versteh ich das nicht ganz...

wenn du erst sortierst, dann in ne datei schreibst, dann wieder aus der datei holst -> dann ist die liste wieder unsortiert?
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Nimm doch deine sortierte Liste un füge diese in das Textedit

Code: Alles auswählen

QStringListIterator it(sList)
while (it.hasNext() == true)
    myTextEdit2->append(it.next());
oder

Code: Alles auswählen

myTextEdit2->setText(sList.join("\n"));
Sind bestimmt keine super Lösungen...
Igell
Beiträge: 27
Registriert: 11. November 2009 20:36

Beitrag von Igell »

Ich möchte das dass Prog. eine txt Datei öffnet und diese auf dem erstem Textedit anzeigt.
Auf dem 2. Textedit soll dann auf das Signal clicked() der Text aus dem 1. Textedit kopiert und nach dem Alphabet geordnet werden.
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Igell hat geschrieben:Ich möchte das dass Prog. eine txt Datei öffnet und diese auf dem erstem Textedit anzeigt.
Auf dem 2. Textedit soll dann auf das Signal clicked() der Text aus dem 1. Textedit kopiert und nach dem Alphabet geordnet werden.
Und zu welchem Zweck soll der Text alphabetisch geordnet werden?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Igell
Beiträge: 27
Registriert: 11. November 2009 20:36

Beitrag von Igell »

Damit es geordnet ist ;)
Ist Wie gesagt eine Fleißarbeit.
Antworten