/*! * \brief MainWindow::Speichern * Als Speicherort sird der in der Klassenvariable Speicherort verwendet. * \return Ob Speichern Erfolgreich verlaufen ist. */ bool MainWindow::Speichern() { if (SpeicherOrt=="")//Prüft ob überhaubt ein Speicherort angegeben ist. return false; QFile Datei(SpeicherOrt);//Ersteilt ein dateiobjekt, dass auf die Datei zeigt. if (!Datei.open(QIODevice::WriteOnly | QIODevice::Text))// Prüft ob die Datei erfolgreich geöffnet werden kann. return false; bool Erfolgreich=false; if (Dateityp==1)//Prüft den Gewünschten Dateityp Und Speichert entsprechend. Erfolgreich=Kurse.savecvsfile(&Datei); if (Dateityp==2) Erfolgreich=Kurse.savexmlfile(&Datei); Datei.close();//Schließt die Datei. return Erfolgreich; }
/*! *Daten aus einer csv Datei Auslesen die Das Vormat einhält in dem Gespeichert wurde. */ bool MainWindow::laden() { QFile Datei(SpeicherOrt); if (!Datei.open(QIODevice::ReadOnly | QIODevice::Text)) //Öfnet die Datei und Prüft ob die Erfolgreich war. return false; //Gibt zurück das ein Fehler aufgetreten ist. bool Erfolgreich=false; if(Dateityp==1) Erfolgreich=Kurse.loadcvsfile(&Datei); if(Dateityp==2) Erfolgreich=Kurse.loadxmlfile(&Datei); Datei.close();//Schließt die Datei if (!Erfolgreich) { leeren(); QMessageBox::warning(this,"Fehler beim Laden",QString("Es ist ein Fehler beim Laden der Datei \"%1\" aufgeterten.\nDie Datei wurde nicht geladen.").arg(SpeicherOrt)); } Graphik.DatenGeaendert(); return Erfolgreich;//Gibt zurück das die Datei Erfolgreich gelesen wurde }
void Datenmodell::DB_Laden() { if(!QSqlDatabase::contains(DBVERBINDUNG)) { QFile Datei(QString("%1/%2").arg(DBPFAD).arg(DBDATEI)); if(!Datei.exists()) { FehlerAufgetreten(tr("Die Datenbank %1 existiert nicht.").arg(Datei.fileName())); return; } //Die DB für SQLite in eine Temoräte Datei schieben QSqlDatabase DB=QSqlDatabase::addDatabase("QSQLITE",DBVERBINDUNG); DB.setDatabaseName(QTemporaryFile::createNativeFile(Datei)->fileName()); if(!DB.open()) { FehlerAufgetreten(DB.lastError().text()); return; } } }
void QFrankQtSBSAManifestBearbeiten::run() { QString Dateiname=K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).DateinameHohlen(); if(!K_QtKomponenteErmitteln(Dateiname)) { K_Fehlercode=1; K_Fehlermeldung=trUtf8("Nicht erkannte oder ungültige Qt4 Komponente %1.").arg(Dateiname); emit fertig(this); return; } QDomDocument Manifest; if(K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).istPlugIn()) { K_Dateipfad=K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).PlugInTypeHohlen()+"\\"; Dateiname=K_Parameter->ZielverzeichnisHohlen()+"/"+K_Dateipfad+Dateiname; } else Dateiname=K_Parameter->ZielverzeichnisHohlen()+"/"+Dateiname; QFile Datei(Dateiname+".manifest"); if(!Datei.open(QIODevice::ReadOnly)) { K_Fehlercode=1; K_Fehlermeldung=trUtf8("Die Datei %1 konnte nicht göffnet werden.").arg(Dateiname); emit fertig(this); return; } if(!Manifest.setContent(&Datei)) { K_Fehlercode=1; K_Fehlermeldung=trUtf8("%1 ist keine gültige XML Datei.").arg(Dateiname); Datei.close(); emit fertig(this); return; } Datei.close(); // Auf gehts:) QDomElement Rootelement=Manifest.documentElement(); QDomElement AssemblyID=K_AssemblyIdentifikationEinfuegen(Manifest); Rootelement.insertBefore(AssemblyID,Rootelement.firstChild()); //File Tag einfügen QDomElement DateiTag=Manifest.createElement("file"); DateiTag.setAttribute("name",K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).DateinameHohlen()); Rootelement.insertAfter(DateiTag,AssemblyID); //Abhängigkeiten von anderen Qt Komponenten ermitteln if(!K_AbhaengigkeitenErmitteln()) { K_Fehlercode=1; emit fertig(this); return; } QString Komponente; Q_FOREACH(Komponente,K_BenoetigeQtKomponenten) { if(!K_AbhaengigkeitEinfuegen(Manifest,Komponente)) { K_Fehlercode=1; emit fertig(this); return; break; } } //Und wieder in die Datei Speichern:) if(!Datei.open(QIODevice::WriteOnly)) { K_Fehlercode=1; K_Fehlermeldung=trUtf8("%1 konnte nicht überschrieben werden.").arg(Dateiname); Datei.close(); emit fertig(this); return; } QTextStream Datenstrom(&Datei); Datenstrom.setCodec("UTF-8"); Datenstrom<<Manifest.toString(); Datenstrom.flush(); Datei.close(); K_Fehlercode=0; emit fertig(this); }