wie schon gesagt ich habe ein Problem eine Datei zu löschen.
Ist eigentlich nicht so schwierig, aber es klappt nicht.
Ich benutze Qt 4.2.2 unter Windows 2000.
Also mein Programm liest Daten per TCP aus einem Messdatenlogger aus und schreibt sie in eine Datei. Diese Datei soll danach per FTP auf einen Server geladen werden und lokal gelöscht werden.
Da ich keine Ahnung habe wo das Problem liege könnte bleibt mir nix anderes übrig als die komplette Datei zu posten.
Ich weiß das ist eine ziemliche Zumutung aber vielleicht hat ja doch jemand die Gedult mir zu helfen.
Code: Alles auswählen
/********************************************************************************
** Form generated from reading ui file 'GAB_tool.ui'
**
** Created: Tue 9. Jan 14:55:43 2007
** by: Qt User Interface Compiler version 4.2.2
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_GAB_TOOL_H
#define UI_GAB_TOOL_H
#include <QtCore/QVariant>
#include <QtCore/QFile>
#include <QtNetwork>
#include <QtCore/QTextStream>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMessageBox>
#include <QtGui/QProgressBar>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QTabWidget>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
#include <QString>
#include <QtCore/QList>
#include <QDir>
#include <iostream>
#include <QtCore/QDataStream>
#include <QtCore/QTextStream>
#include <QSystemTrayIcon>
#include <QtGui>
#include <QAction>
using namespace std;
class Ui_MainWindow : public QMainWindow
{
Q_OBJECT
public:
QWidget *centralwidget;
QHBoxLayout *hboxLayout;
QTabWidget *tabWidget;
QWidget *tab_1;
QVBoxLayout *vboxLayout;
QVBoxLayout *vboxLayout1;
QSpacerItem *spacerItem;
QVBoxLayout *vboxLayout2;
QProgressBar *progressBar;
QSpacerItem *spacerItem1;
QHBoxLayout *hboxLayout1;
QPushButton *pushButton_abfragen;
QSpacerItem *spacerItem2;
QPushButton *pushButton_upload;
QSpacerItem *spacerItem3;
QWidget *tab_2;
QHBoxLayout *hboxLayout2;
QVBoxLayout *vboxLayout3;
QHBoxLayout *hboxLayout3;
QVBoxLayout *vboxLayout4;
QLabel *label;
QSpacerItem *spacerItem4;
QLabel *label_2;
QSpacerItem *spacerItem5;
QLabel *label_3;
QSpacerItem *spacerItem6;
QLabel *label_5;
QSpacerItem *spacerItem7;
QLabel *label_4;
QSpacerItem *spacerItem8;
QVBoxLayout *vboxLayout5;
QLineEdit *lineEdit_dateiname;
QSpacerItem *spacerItem9;
QLineEdit *lineEdit_ipgypsy;
QSpacerItem *spacerItem10;
QLineEdit *lineEdit_ipftpserver;
QSpacerItem *spacerItem11;
QLineEdit *lineEdit_ftpbeutzername;
QSpacerItem *spacerItem12;
QLineEdit *lineEdit_ftppasswort;
QSpacerItem *spacerItem13;
QHBoxLayout *hboxLayout4;
QSpacerItem *spacerItem14;
QPushButton *pushButton_speichern;
QSpacerItem *spacerItem15;
QFtp *ftp;
int zaehler;
QList<QString> dateinamen;
QTcpSocket tcpsocket;
quint16 nextBlockSize;
QSystemTrayIcon *trayicon;
QMainWindow *MainWindow2;
QFile *upload_datei;
void setupUi(QMainWindow *MainWindow)
{
MainWindow2=MainWindow;
zaehler=0;
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->setWindowModality(Qt::ApplicationModal);
MainWindow->setContextMenuPolicy(Qt::DefaultContextMenu);
MainWindow->setWindowIcon(QIcon(QString::fromUtf8(":/web_logo.jpg")));
MainWindow->setToolButtonStyle(Qt::ToolButtonIconOnly);
MainWindow->setDockNestingEnabled(false);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
centralwidget->setWindowModality(Qt::NonModal);
hboxLayout = new QHBoxLayout(centralwidget);
hboxLayout->setSpacing(0);
hboxLayout->setMargin(0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
tabWidget = new QTabWidget(centralwidget);
tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
tabWidget->setMinimumSize(QSize(0, 0));
tabWidget->setFocusPolicy(Qt::StrongFocus);
tabWidget->setAutoFillBackground(true);
tab_1 = new QWidget();
tab_1->setObjectName(QString::fromUtf8("tab_1"));
QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(7), static_cast<QSizePolicy::Policy>(7));
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(tab_1->sizePolicy().hasHeightForWidth());
tab_1->setSizePolicy(sizePolicy);
tab_1->setFocusPolicy(Qt::TabFocus);
vboxLayout = new QVBoxLayout(tab_1);
vboxLayout->setSpacing(6);
vboxLayout->setMargin(9);
vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
vboxLayout1 = new QVBoxLayout();
vboxLayout1->setSpacing(6);
vboxLayout1->setMargin(0);
vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
spacerItem = new QSpacerItem(20, 58, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout1->addItem(spacerItem);
vboxLayout2 = new QVBoxLayout();
vboxLayout2->setSpacing(0);
vboxLayout2->setMargin(0);
vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
progressBar = new QProgressBar(tab_1);
progressBar->setObjectName(QString::fromUtf8("progressBar"));
progressBar->setValue(0);
progressBar->setTextVisible(false);
progressBar->setOrientation(Qt::Horizontal);
//progressBar->setInvertedAppearance(true);
progressBar->hide();
vboxLayout2->addWidget(progressBar);
spacerItem1 = new QSpacerItem(20, 101, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout2->addItem(spacerItem1);
hboxLayout1 = new QHBoxLayout();
hboxLayout1->setSpacing(6);
hboxLayout1->setMargin(0);
hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
pushButton_abfragen = new QPushButton(tab_1);
pushButton_abfragen->setObjectName(QString::fromUtf8("pushButton_abfragen"));
pushButton_abfragen->setDefault(true);
hboxLayout1->addWidget(pushButton_abfragen);
spacerItem2 = new QSpacerItem(141, 20, QSizePolicy::Maximum, QSizePolicy::Minimum);
hboxLayout1->addItem(spacerItem2);
pushButton_upload = new QPushButton(tab_1);
pushButton_upload->setObjectName(QString::fromUtf8("pushButton_upload"));
hboxLayout1->addWidget(pushButton_upload);
vboxLayout2->addLayout(hboxLayout1);
vboxLayout1->addLayout(vboxLayout2);
spacerItem3 = new QSpacerItem(20, 51, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout1->addItem(spacerItem3);
vboxLayout->addLayout(vboxLayout1);
tabWidget->addTab(tab_1, QApplication::translate("MainWindow", "Daten", 0, QApplication::UnicodeUTF8));
tab_2 = new QWidget();
tab_2->setObjectName(QString::fromUtf8("tab_2"));
QSizePolicy sizePolicy1(static_cast<QSizePolicy::Policy>(7), static_cast<QSizePolicy::Policy>(7));
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(tab_2->sizePolicy().hasHeightForWidth());
tab_2->setSizePolicy(sizePolicy1);
hboxLayout2 = new QHBoxLayout(tab_2);
hboxLayout2->setSpacing(6);
hboxLayout2->setMargin(9);
hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2"));
vboxLayout3 = new QVBoxLayout();
vboxLayout3->setSpacing(0);
vboxLayout3->setMargin(0);
vboxLayout3->setObjectName(QString::fromUtf8("vboxLayout3"));
hboxLayout3 = new QHBoxLayout();
hboxLayout3->setSpacing(6);
hboxLayout3->setMargin(0);
hboxLayout3->setObjectName(QString::fromUtf8("hboxLayout3"));
vboxLayout4 = new QVBoxLayout();
vboxLayout4->setSpacing(6);
vboxLayout4->setMargin(0);
vboxLayout4->setObjectName(QString::fromUtf8("vboxLayout4"));
label = new QLabel(tab_2);
label->setObjectName(QString::fromUtf8("label"));
vboxLayout4->addWidget(label);
spacerItem4 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout4->addItem(spacerItem4);
label_2 = new QLabel(tab_2);
label_2->setObjectName(QString::fromUtf8("label_2"));
vboxLayout4->addWidget(label_2);
spacerItem5 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout4->addItem(spacerItem5);
label_3 = new QLabel(tab_2);
label_3->setObjectName(QString::fromUtf8("label_3"));
vboxLayout4->addWidget(label_3);
spacerItem6 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout4->addItem(spacerItem6);
label_5 = new QLabel(tab_2);
label_5->setObjectName(QString::fromUtf8("label_5"));
vboxLayout4->addWidget(label_5);
spacerItem7 = new QSpacerItem(20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout4->addItem(spacerItem7);
label_4 = new QLabel(tab_2);
label_4->setObjectName(QString::fromUtf8("label_4"));
vboxLayout4->addWidget(label_4);
hboxLayout3->addLayout(vboxLayout4);
spacerItem8 = new QSpacerItem(31, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout3->addItem(spacerItem8);
vboxLayout5 = new QVBoxLayout();
vboxLayout5->setSpacing(6);
vboxLayout5->setMargin(0);
vboxLayout5->setObjectName(QString::fromUtf8("vboxLayout5"));
lineEdit_dateiname = new QLineEdit(tab_2);
lineEdit_dateiname->setObjectName(QString::fromUtf8("lineEdit_dateiname"));
vboxLayout5->addWidget(lineEdit_dateiname);
spacerItem9 = new QSpacerItem(20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout5->addItem(spacerItem9);
lineEdit_ipgypsy = new QLineEdit(tab_2);
lineEdit_ipgypsy->setObjectName(QString::fromUtf8("lineEdit_ipgypsy"));
vboxLayout5->addWidget(lineEdit_ipgypsy);
spacerItem10 = new QSpacerItem(20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout5->addItem(spacerItem10);
lineEdit_ipftpserver = new QLineEdit(tab_2);
lineEdit_ipftpserver->setObjectName(QString::fromUtf8("lineEdit_ipftpserver"));
vboxLayout5->addWidget(lineEdit_ipftpserver);
spacerItem11 = new QSpacerItem(20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout5->addItem(spacerItem11);
lineEdit_ftpbeutzername = new QLineEdit(tab_2);
lineEdit_ftpbeutzername->setObjectName(QString::fromUtf8("lineEdit_ftpbeutzername"));
vboxLayout5->addWidget(lineEdit_ftpbeutzername);
spacerItem12 = new QSpacerItem(20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout5->addItem(spacerItem12);
lineEdit_ftppasswort = new QLineEdit(tab_2);
lineEdit_ftppasswort->setObjectName(QString::fromUtf8("lineEdit_ftppasswort"));
vboxLayout5->addWidget(lineEdit_ftppasswort);
hboxLayout3->addLayout(vboxLayout5);
vboxLayout3->addLayout(hboxLayout3);
spacerItem13 = new QSpacerItem(20, 60, QSizePolicy::Minimum, QSizePolicy::Expanding);
vboxLayout3->addItem(spacerItem13);
hboxLayout4 = new QHBoxLayout();
hboxLayout4->setSpacing(6);
hboxLayout4->setMargin(0);
hboxLayout4->setObjectName(QString::fromUtf8("hboxLayout4"));
spacerItem14 = new QSpacerItem(101, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem14);
pushButton_speichern = new QPushButton(tab_2);
pushButton_speichern->setObjectName(QString::fromUtf8("pushButton_speichern"));
hboxLayout4->addWidget(pushButton_speichern);
spacerItem15 = new QSpacerItem(101, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
hboxLayout4->addItem(spacerItem15);
vboxLayout3->addLayout(hboxLayout4);
hboxLayout2->addLayout(vboxLayout3);
tabWidget->addTab(tab_2, QApplication::translate("MainWindow", "Einstellungen", 0, QApplication::UnicodeUTF8));
hboxLayout->addWidget(tabWidget);
MainWindow->setCentralWidget(centralwidget);
QWidget::setTabOrder(pushButton_abfragen, pushButton_upload);
QWidget::setTabOrder(pushButton_upload, tabWidget);
QWidget::setTabOrder(tabWidget, pushButton_speichern);
QWidget::setTabOrder(pushButton_speichern, lineEdit_dateiname);
QWidget::setTabOrder(lineEdit_dateiname, lineEdit_ipgypsy);
QWidget::setTabOrder(lineEdit_ipgypsy, lineEdit_ipftpserver);
QWidget::setTabOrder(lineEdit_ipftpserver, lineEdit_ftpbeutzername);
QWidget::setTabOrder(lineEdit_ftpbeutzername, lineEdit_ftppasswort);
retranslateUi(MainWindow);
QSize size(501, 331);
size = size.expandedTo(MainWindow->minimumSizeHint());
MainWindow->resize(size);
trayicon = new QSystemTrayIcon(QIcon(QString::fromUtf8(":/web_logo.jpg")));
trayicon->show();
QObject::connect(trayicon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
tabWidget->setCurrentIndex(0);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "GABtool", 0, QApplication::UnicodeUTF8));
tabWidget->setStyleSheet(QString());
pushButton_abfragen->setText(QApplication::translate("MainWindow", "&Daten abfragen", 0, QApplication::UnicodeUTF8));
pushButton_upload->setText(QApplication::translate("MainWindow", "&FTP - Upload", 0, QApplication::UnicodeUTF8));
tabWidget->setTabText(tabWidget->indexOf(tab_1), QApplication::translate("MainWindow", "Daten", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("MainWindow", "Dateiname", 0, QApplication::UnicodeUTF8));
label_2->setText(QApplication::translate("MainWindow", "IP - Gypsy", 0, QApplication::UnicodeUTF8));
label_3->setText(QApplication::translate("MainWindow", "IP - FTP-Server", 0, QApplication::UnicodeUTF8));
label_5->setText(QApplication::translate("MainWindow", "FTP - Benutzername", 0, QApplication::UnicodeUTF8));
label_4->setText(QApplication::translate("MainWindow", "FTP - Passwort", 0, QApplication::UnicodeUTF8));
pushButton_speichern->setText(QApplication::translate("MainWindow", "&Einstellungen speichern", 0, QApplication::UnicodeUTF8));
tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("MainWindow", "Einstellungen", 0, QApplication::UnicodeUTF8));
Q_UNUSED(MainWindow);
} // retranslateUi
void closeEvent(QCloseEvent *event)
{
if (trayicon->isVisible()) {
QMessageBox::information(this, tr("Systray"),
tr("The program will keep running in the "
"system tray. To terminate the program, "
"choose <b>Quit</b> in the context menu "
"that pops up when clicking this program's "
"entry in the system tray."));
hide();
event->ignore();
}
}
public slots:
///////////////////////////////////////////
///////// speichern der Einstellungen
/////////////////////////////////////////
void getEinstellungen(void){
//char buffer;
QFile confdatei("GABtool.conf");
confdatei.open(QFile::ReadOnly);
QString dateiname,ip_gipsy,ip_ftp,ftp_bname,ftp_passwort;
QTextStream conf(&confdatei);
conf.skipWhiteSpace();
conf >> dateiname >> ip_gipsy >> ip_ftp >> ftp_bname >> ftp_passwort;
lineEdit_dateiname->setText(dateiname);
lineEdit_ipgypsy->setText(ip_gipsy);
lineEdit_ipftpserver->setText(ip_ftp);
lineEdit_ftpbeutzername->setText(ftp_bname);
lineEdit_ftppasswort->setText(ftp_passwort);
confdatei.close();
}//getEinstellungen
void speichern(void){
QFile confdatei("GABtool.conf");
confdatei.open(QFile::WriteOnly);
QTextStream conf(&confdatei);
QString dateiname,ip_gipsy,ip_ftp,ftp_bname,ftp_passwort;
dateiname = lineEdit_dateiname->text();
ip_gipsy = lineEdit_ipgypsy->text();
ip_ftp = lineEdit_ipftpserver->text();
ftp_bname = lineEdit_ftpbeutzername->text();
ftp_passwort = lineEdit_ftppasswort->text();
conf << dateiname << " " << ip_gipsy << " " << ip_ftp << " " << ftp_bname << " " << ftp_passwort << " " << endl;
confdatei.close();
}//speichern
////////////////////////////////////////////////
////////// ab hier beginnt der Code für den FTP Upload
//////////////////////////////////////////////////////
void upload(void){
upload_datei = new QFile(lineEdit_dateiname->text()+".txt");
if(upload_datei->size() > 0){
ftp = new QFtp(this);
connect(ftp, SIGNAL(commandFinished(int, bool)),
this, SLOT(ftpCommandFinished(int, bool)));
connect(ftp, SIGNAL(listInfo(const QUrlInfo &)),
this, SLOT(addToList(const QUrlInfo &)));
connect(ftp, SIGNAL(dataTransferProgress(qint64, qint64)),
this, SLOT(updateDataTransferProgress(qint64, qint64)));
connect(ftp, SIGNAL(done( bool )),
this, SLOT(loeschen( bool )));
ftp->setTransferMode(QFtp::Active);
ftp->connectToHost(lineEdit_ipftpserver->text());
ftp->login(lineEdit_ftpbeutzername->text(),lineEdit_ftppasswort->text());
ftp->list();
pushButton_abfragen->setEnabled(false);
pushButton_upload->setEnabled(false);
pushButton_upload->setText(tr("Uploading...."));
}
upload_datei->close();
}//upload
void ftpCommandFinished(int, bool error)
{
upload_datei = new QFile(lineEdit_dateiname->text()+".txt");
if(!upload_datei->exists()){
QMessageBox::information(this, tr("FTP"),
tr("<h2>Die Datei konnte nicht gefunden werden</h2>Bitte kontrollieren Sie die Angabe für den Dateinamen. <br> Eventuell ist die Datei bereits hochgeladen, fragen Sie in diesem Fall die Daten erneut ab.")
.arg(lineEdit_ipftpserver->text()));
pushButton_abfragen->setEnabled(true);
pushButton_upload->setEnabled(true);
pushButton_upload->setText(tr("Upload"));
}
upload_datei->close();
if (ftp->currentCommand() == QFtp::ConnectToHost) {
if (error) {
QMessageBox::information(this, tr("FTP"),
tr("<h2>Die Verbingung zum Server konnte nicht hergestellt werden!</h2>Bitte kontrollieren Sie Ihre Einstellungen, und stellen Sie die Verbindung zum Internet sicher.")
.arg(lineEdit_ipftpserver->text()));
pushButton_abfragen->setEnabled(true);
pushButton_upload->setEnabled(true);
pushButton_upload->setText(tr("Upload"));
return;
}
}
if (ftp->currentCommand() == QFtp::Login) {
if (error) {
QMessageBox::information(this, tr("FTP"),
tr("<h2>Der Login ist fehlgeschlagen!</h2>Bitte kontrollieren Sie Ihren Benutzernamen und Passwort.")
.arg(lineEdit_ipftpserver->text()));
pushButton_abfragen->setEnabled(true);
pushButton_upload->setEnabled(true);
pushButton_upload->setText(tr("Upload"));
return;
}
}
if (ftp->currentCommand() == QFtp::List) {
if(zaehler == 0){
ftp->put(upload_datei,lineEdit_dateiname->text()+".txt",QFtp::Ascii);
}
else{
QString zahl;
bool gefunden = false;
QString dateiname;
for(int i=1;i<=(zaehler+1);i++){
zahl.setNum(i);
dateiname = (lineEdit_dateiname->text()+zahl+".txt");
for(int j=0; j<dateinamen.count(); j++){
if(dateinamen[j] == dateiname){
gefunden = true;
break; //aus innerer Schleife herausspringen, da gefunden
}
}
if(gefunden == true){
gefunden = false;
}
else{
break; //aus aussen Schleife herausspringen, da name nicht gefunden
}
}
ftp->put(upload_datei,dateiname,QFtp::Ascii);
dateinamen.clear();
}
}
if (ftp->currentCommand() == QFtp::Put) {
ftp->close();
}
if (ftp->currentCommand() == QFtp::Close) {
}
}//ftpCommandFinished
void addToList(const QUrlInfo &urlInfo)
{
dateinamen << urlInfo.name();
zaehler =zaehler+1;
}//addToList
void updateDataTransferProgress(qint64 readBytes, qint64 totalBytes)
{
progressBar->show();
progressBar->setMinimum(0);
progressBar->setMaximum(totalBytes);
progressBar->setValue(readBytes);
if(readBytes == totalBytes)
{
progressBar->hide();
}
}//updateDataTransferProgress
void loeschen( bool error ) {
upload_datei = new QFile(lineEdit_dateiname->text()+".txt");
upload_datei->setFileName(lineEdit_dateiname->text()+".txt");
upload_datei->close();
/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////// Achtung hier tritt das Problem auf !!!!!!!!!!!!!!!!
/////////////////////////////////////////////////////////////////////////////////////
if(upload_datei->remove())
{
QMessageBox::information(this, tr("FTP"),
tr("Der Messdatenupload war erfolgreich!")
.arg(lineEdit_ipftpserver->text()));
}
pushButton_abfragen->setEnabled(true);
pushButton_upload->setEnabled(true);
pushButton_upload->setText(tr("Upload"));
}
void tabChanged(int index) {
if(index == 1)
{
getEinstellungen();
}
}//tabChanged
//////////////////////////////////////////////////////////////////////
///////////ab hier Code zum auslesen aus dem Datenlogger per TCP
///////////////////////////////////////////////////////////////////////////
void connectToServer(void){
//pushButton_abfragen->setText(tr("Abfragen 2......"));
tcpsocket.connectToHost(lineEdit_ipgypsy->text(),5050);
pushButton_abfragen->setText(tr("Abfragen ......"));
pushButton_upload->setEnabled(false);
pushButton_abfragen->setEnabled(false);
};//connectToServer
void sendRequest(void) {
QByteArray ba;
QBuffer buf(&ba);
QByteArray sql("SELECT * FROM Historie; \r\n");
quint16 len = sql.length();
buf.write((char*)&len);
tcpsocket.write(ba);
tcpsocket.write(sql,sql.length());
};//sendRequest
void getData(void){
aktiv();
pushButton_abfragen->setText(tr("Datensätze werden geschrieben......"));
//pushButton_abfragen->setText(tcpsocket.errorString()+" --1");
upload_datei = new QFile(lineEdit_dateiname->text()+".txt");
upload_datei->open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream schreiben(upload_datei);
quint16 da = tcpsocket.bytesAvailable();
QString temp;
bool ok_schreiben = true;
temp = tcpsocket.read(da);
if(temp.contains("0\r\n\r\n", Qt::CaseInsensitive)){deleteData();closeConnection();}
if(temp.contains("Keine Datensaetze selektiert", Qt::CaseInsensitive)){ok_schreiben = false;closeConnection();}
if(ok_schreiben){
schreiben << temp;
}
upload_datei->close();
};//getData
void deleteData(void){
QByteArray ba;
QBuffer buf(&ba);
QByteArray sql("DELETE FROM Historie; \r\n");
quint16 len = sql.length();
buf.write((char*)&len);
tcpsocket.write(ba);
tcpsocket.write(sql,sql.length());
}//deleteData
void closeConnection(void){
tcpsocket.close();
endaktiv();
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
};//closeConnection
void aktiv(void){
progressBar->show();
progressBar->setMinimum(0);
progressBar->setMaximum(0);
progressBar->setValue(5);
}//aktiv
void endaktiv(void){
progressBar->hide();
}//endaktiv
void displayError(QAbstractSocket::SocketError socketError)
{
switch (socketError) {
case QAbstractSocket::RemoteHostClosedError:
break;
case QAbstractSocket::HostNotFoundError:
QMessageBox::information(this, tr("Fortune Client"),
tr("Die Gipsy wurde nicht gefunden "
"Kontrollieren Sie die IP der Gipsy."));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
break;
case QAbstractSocket::ConnectionRefusedError:
QMessageBox::information(this, tr("Fortune Client"),
tr("Die Verbindung wurde zurück gesetzt "
"Stellen Sie sicher das die Gipsy arbeitet, "
"und kontrollieren Sie die IP der Gipsy. "
" "));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
break;
default:
QMessageBox::information(this, tr("Fortune Client"),
tr("Folgender Fehler ist aufgetreten: %1.")
.arg(tcpsocket.errorString()));
pushButton_abfragen->setText(tr("Daten abfragen"));
pushButton_upload->setEnabled(true);
pushButton_abfragen->setEnabled(true);
}
}
void iconActivated(QSystemTrayIcon::ActivationReason reason)
{
MainWindow2->show();
QSize size(501, 331);
size = size.expandedTo(MainWindow2->minimumSizeHint());
MainWindow2->resize(size);
}
};//end of classUi_MainWindow
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
#endif // UI_GAB_TOOL_H
Code: Alles auswählen
//#include <QtGui>
#include <QtGui/QMainWindow>
#include <QtCore/QTimer>
#include <QSystemTrayIcon>
#include <QtCore>
#include"ui_GAB_tool.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow window;
Ui::MainWindow ui;
ui.setupUi(&window);
Q_INIT_RESOURCE(gabtool);
QCoreApplication::addLibraryPath ("./iconengines/");
QCoreApplication::addLibraryPath ("./imageformats/");
QCoreApplication::addLibraryPath ("./accessible/");
QCoreApplication::addLibraryPath ("./codecs/");
QCoreApplication::addLibraryPath ("./designer/");
QCoreApplication::addLibraryPath ("./sqldrivers/");
//window.setAttribute(Qt::WA_QuitOnClose);
app.setQuitOnLastWindowClosed(false);
QTimer::singleShot(10, &ui, SLOT(getEinstellungen()));
QTimer::singleShot(10, &ui, SLOT(connectToServer()));
QObject::connect(ui.pushButton_speichern, SIGNAL( pressed() ), &ui , SLOT( speichern() ) );
QObject::connect(ui.pushButton_upload, SIGNAL( pressed() ), &ui , SLOT( upload() ) );
QObject::connect(ui.tabWidget, SIGNAL( currentChanged(int) ), &ui , SLOT( tabChanged(int) ) );
QObject::connect(ui.pushButton_abfragen, SIGNAL( pressed() ), &ui , SLOT( connectToServer() ) );
QObject::connect(&ui.tcpsocket, SIGNAL( connected() ), &ui , SLOT( sendRequest() ) );
QObject::connect(&ui.tcpsocket, SIGNAL( readyRead() ), &ui , SLOT( getData() ) );
//QObject::connect(&ui.tcpsocket, SIGNAL( readyRead() ), &ui , SLOT( aktiv() ) );
QObject::connect(&ui.tcpsocket, SIGNAL( disconnected() ), &ui , SLOT( closeConnection() ) );
QObject::connect(&ui.tcpsocket, SIGNAL(error(QAbstractSocket::SocketError)),&ui, SLOT(displayError(QAbstractSocket::SocketError)));
QTimer *timer = new QTimer();
QObject::connect(timer, SIGNAL(timeout()), &ui, SLOT(connectToServer()));
timer->start(86400);
window.show();
return app.exec();
}
Mist in diese Datei zu schreiben. Das ist mein erstes QT Programm und mein Wissen wächst mit jeder Zeile.
Ach ja, wenn das Programm läuft kann ich die Datei auch nicht im Explorer löschen.
Vielen Dank auf jeden Fall schonmal.
Gruß,
SuperSonik