txt.file sortiert ausgeben. QStringList::sort() Fail
Verfasst: 23. Dezember 2009 07:17
Hallo,
erstmal entschuldigung für die wenig aussage kräftige überschrift.
Ich sitze immer nach an meiner kleinen Fleis Arbeit
->http://www.qtforum.de/forum/viewtopic.php?t=10487
und komme momentan nicht weiter.
Programm Ablauf :
Durch Drücken des "Open" Buttons wird ein Dialog zum auswählen einer Datei angezeigt.
Nach Auswahl der Text Datei schließt sich der Auswahldialog wider und die TextDatei wird auf dem erstem von zwei QTexteEdit angezeigt.
Durch Drücken des "Sort" Buttons soll nun der Text der auf dem erstem QTextEdit zu sehen ist, Alphabetisch sortiert auf dem zweitem QTextEdit angezeigt werden.
Durch Drücken des "Close" Buttons wird das Programm beendet.
Auf dem zweitem QTextEdit wird der gleiche Text ausgegeben wie auf dem erstem. Für anmerkungen, Ideehen, Vorschläge , kritik an Quellcode & Post bin ich dankbar.
erstmal entschuldigung für die wenig aussage kräftige überschrift.
Ich sitze immer nach an meiner kleinen Fleis Arbeit
->http://www.qtforum.de/forum/viewtopic.php?t=10487
und komme momentan nicht weiter.
Code: Alles auswählen
//mywidget.cpp
#include "mywidget.h"
#include <QFileDialog>
#include <iostream>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
hLay1 = new QHBoxLayout;
hLay2 = new QHBoxLayout;
vLay1 = new QVBoxLayout;
te1 = new QTextEdit;
te2 = new QTextEdit;
close = new QPushButton("Close");
open = new QPushButton("Open");
sort = new QPushButton("Sort");
//hLay2 - HorizontalLayout Nr.2 - für die TextEditoren
hLay2->addWidget(te1);
hLay2->addWidget(te2);
//vLay1 - VertikalLayout Nr.1 - für die Buttons
vLay1->addWidget(sort);
vLay1->addWidget(open);
vLay1->addWidget(close);
//hLay1 - HorizontalLayout Nr.1 - das HauptLayout
hLay1->addLayout(hLay2);
hLay1->addLayout(vLay1);
this->connect(sort, SIGNAL(clicked()), this, SLOT(sort_file()));
this->connect(open, SIGNAL(clicked()),this, SLOT(open_file()));
this->connect(close, SIGNAL(clicked()), this, SLOT(close()));
this->setLayout(hLay1);
}
MyWidget::~MyWidget()
{
}
void MyWidget::open_file()//SLOT
{
QString str1;
str1 = QFileDialog::getOpenFileName(this,"Datei Waehlen",QDir::homePath(),"Dokumente (*.txt)");
this->set_str(str1);
if(!str1.isEmpty())
{
QFile file(str);
file.open(QIODevice::ReadOnly | QIODevice::Text);
te1->setPlainText(file.readAll());
file.close();
}
}
void MyWidget::sort_file()// SLOT
{
QString str1;
str1 = this->get_str();
if(!str1.isEmpty())
{
QFile file(str);
file.open(QIODevice::ReadWrite | QIODevice::Text);
QStringList strl(file.readAll());
strl.sort();
te2->setPlainText(strl.join(" XXxx "));
file.close();
//std::cout << "Test ------ innere Klammer beendet" << std::endl;
}
}
QString MyWidget::get_str()
{
return str;
}
void MyWidget::set_str(QString s)
{
str = s;
}
Durch Drücken des "Open" Buttons wird ein Dialog zum auswählen einer Datei angezeigt.
Nach Auswahl der Text Datei schließt sich der Auswahldialog wider und die TextDatei wird auf dem erstem von zwei QTexteEdit angezeigt.
Durch Drücken des "Sort" Buttons soll nun der Text der auf dem erstem QTextEdit zu sehen ist, Alphabetisch sortiert auf dem zweitem QTextEdit angezeigt werden.
Durch Drücken des "Close" Buttons wird das Programm beendet.
Auf dem zweitem QTextEdit wird der gleiche Text ausgegeben wie auf dem erstem. Für anmerkungen, Ideehen, Vorschläge , kritik an Quellcode & Post bin ich dankbar.