Seite 1 von 1

Problem eine Datei zu löschen

Verfasst: 13. März 2007 15:23
von SuperSonik
Hallo Leute,
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

Hier noch die main:

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();  
	
	
}

Die .h Datei ist ursprünglich aus einer .ui erzeugt worden. Ich weiß es ist
Mist in diese Datei zu schreiben. Das ist mein erstes QT Programm und mein Wissen wächst mit jeder Zeile. :oops:
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

Verfasst: 13. März 2007 16:15
von macman
Da hat noch jemand den Finger auf der Datei, wahrscheinlich Du selber. Ohne jetzt alles durch geguckt zu haben, mach es so

Code: Alles auswählen

QFile::remove(myPathFilename);
und es ist weg, wenn Du nicht irgendwo noch auf die Datei zugreifst.

Verfasst: 14. März 2007 18:02
von patrik08
Ich mag noch die php function namen .... die ich auswendig kenne ....

Und viele funktionen habe ich durch namen uebersetz .... so dass es schneller geht beim schreiben....

Code: Alles auswählen


/* remove a file */
bool qt_unlink(QString fullFileName)
{
    if (fullFileName.size() > 0) {
    QFile f( fullFileName );
	if ( f.exists(fullFileName) ) {
       if (f.remove()) {
        return true;
       }
	}
    }
return false;
}


/* check if a file exist alert dons say true if a zero byte file!  */
bool is_file(QString fullFileName)
{
    if (!fullFileName.size() > 0) {
      return false;  
    }
    QDir diro(fullFileName);
       if (diro.exists()) {
         return false;   
       }
    QFile f( fullFileName );
	if ( f.exists(fullFileName) ) {
    return true;  
	} else {
	return false;
    }
}


/* geht auch gut zum ordner machen wenn sie  nicht existieren....*/

/* write a file to utf-8 format */
bool fwriteutf8(QString fullFileName,QString xml)
{
    if (fullFileName.contains("/", Qt::CaseInsensitive)) {
    QString ultimacartellaaperta = fullFileName.left(fullFileName.lastIndexOf("/"))+"/";
    QDir dira(ultimacartellaaperta);
    if ( dira.mkpath(ultimacartellaaperta) ) { } else {
    return false;
    }
    }
    
        QTextCodec *codecx;
        codecx = QTextCodec::codecForMib(106);
        QFile f( fullFileName );
        if ( f.open( QFile::WriteOnly | QFile::Text ) )
        {
        QTextStream sw( &f );
        sw.setCodec(codecx);
        sw << xml;
        f.close();
        return true;
        }
        return false;
}

/* read the contenet of a local file as qstring */
QString fopenutf8(QString fullFileName)
{
    QString inside = "";
    QFile file(fullFileName); 
    if (file.exists()) {
                if (file.open(QFile::ReadOnly | QFile::Text)) {
                    inside = QString::fromUtf8(file.readAll());
                  file.close();
                }
    }

return inside;
}