dijkstra (string odl, wierzcholek* start, wierzcholek* stop, vector<wierzcholek*> *sc) : odle(odl), pary(start->grafo()->wierzcholkisize()) { init(start); *sc=sciezka(start, stop); }
bool BramaZnajomych::wczytajBaze() { QFile plikSchematu(":/znajomi.xsd"); plikSchematu.open(QIODevice::ReadOnly); QXmlSchema schemat; schemat.load(&plikSchematu, QUrl::fromLocalFile(plikSchematu.fileName())); if(schemat.isValid()){ // qDebug() << "Schemat Poprawny"; QString sciezka(katalogBazy); sciezka.append("/"); sciezka.append(login); sciezka.append(".xml"); // qDebug() << sciezka; plikBazy = new QFile(sciezka); if(plikBazy->open(QIODevice::ReadOnly)){ // qDebug() << "Plik istnieje"; QXmlSchemaValidator walidator(schemat); if(walidator.validate(plikBazy, QUrl::fromLocalFile(plikBazy->fileName()))){ // qDebug() << "Plik porawny"; plikBazy->close(); plikBazy->open(QIODevice::ReadOnly); QDomDocument doc("mydocument"); if(doc.setContent(plikBazy)){ // qDebug() << "Udalo sie zaladowac document"; } else { // qDebug() << "DomDocument fejl"; } QDomElement glownyElement = doc.documentElement(); QDomNodeList znajomi = glownyElement.elementsByTagName("znajomy"); int iloscZnajomych = znajomi.size(); // qDebug() << "Ilosc znajomych w pliku xml: " << iloscZnajomych; for(int i = 0; i < iloscZnajomych; ++i){ int id = znajomi.at(i).attributes().namedItem("ID").toAttr().value().toInt(); QString nick = znajomi.at(i).attributes().namedItem("login").toAttr().value(); listaZnajomych.push_back(qMakePair(nick, id)); } } else{ // qDebug() << "Poprawnosc pliku xml fejl"; plikBazy->close(); zapiszBaze(); } } else { // qDebug() << "Plik xml nie istnieje"; QDir katalog(katalogBazy); if(!katalog.exists()){ // qDebug() << "Katalog bazodanowy nie istnieje"; if(katalog.mkpath(".")){ // qDebug() << "Stworzono katalog bazodanowy"; } else{ // qDebug() << "Proba stworzenia katalogu bazodanowego fejl"; } } plikBazy->close(); zapiszBaze(); } } else { // qDebug() << "Schemat fejl"; return false; } plikSchematu.close(); plikBazy->close(); usunZnajomego(555); return true; }