Seite 1 von 1

wie bring ich den Inhalt von QStrinList auf den Texteditor

Verfasst: 15. Dezember 2009 16:05
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 ?

Verfasst: 15. Dezember 2009 16:24
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       "
 }

Verfasst: 15. Dezember 2009 16:44
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.

Verfasst: 16. Dezember 2009 15:23
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?

Verfasst: 16. Dezember 2009 16:07
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...

Verfasst: 16. Dezember 2009 16:32
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.

Verfasst: 21. Dezember 2009 03:34
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?

Verfasst: 21. Dezember 2009 09:51
von Igell
Damit es geordnet ist ;)
Ist Wie gesagt eine Fleißarbeit.