Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] problem z zapisem do pliku

Ostatnio zmodyfikowano 2010-09-15 00:35
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
[Qt] problem z zapisem do pliku
» 2010-09-13 23:37:11
C/C++
//#include <QTextStream>
//#include <QFile>
void OKNO::zapisz()
{
    QFile file( "plik.txt" );
    file.open( QIODevice::WriteOnly | QIODevice::Text );
    QTextStream out( & file );
    out << "wiadomosc \n";
    file.close();
}
void OKNO::on_zatwierdz_clicked()
{
    zapisz();
}
mam problem z zapisem, poniewaz jesli pliku nie ma, to sie nie tworzy, a jesli sam go utworze, to i tak nic sie z nim nie zapisuje, dlaczego??

zmienilem juz
C/C++
void OKNO::on_zatwierdz_clicked()
{
    zapisz();
}
//na
connect( zatwierdz, SIGNAL( clicked() ), this, SLOT( zapisz() ) );

i dalej nic, chociaz jedna i druga metoda powinny sie sprawdzic, oczywiscie w okno.h w slotach mam zadeklarowane zapisz(), bledow zadnych nie wywala
P-21971
malan
» 2010-09-13 23:50:52
Zapewne coś się knoci podczas otwarcia pliku. Sprawdź QFile::FileError.
P-21974
dmx81
Temat założony przez niniejszego użytkownika
» 2010-09-14 00:28:37
zwraca 0 , czyli brak bledu otwarcia pliku, ide spac, jutro bede dalej kombinowal, chyba ze ktos na cos wpadnie
C/C++
int OKNO::zapisz()
{
   
   
    QFile file( "dawid.txt" );
    if( !file.open( QIODevice::WriteOnly | QIODevice::Text ) )
    {
        return file.error();
       
    }
    else
    {
       
        QTextStream out( & file );
        out << "This file is generated by Qt\n";
        file.close();
        return file.error();
    }
   
   
   
}

int OKNO::blad()
{
    QString ss;
    nazwline->setText( ss.setNum( zapisz() ) );
    return zapisz();
}

connect( zatwierdz, SIGNAL( clicked() ), this, SLOT( zapisz() ) );
connect( zatwierdz, SIGNAL( clicked() ), this, SLOT( blad() ) );
P-21975
malan
» 2010-09-14 15:59:53
Najpierw to sprawdź, czy program wchodzi do funkcji - np. poprzez wstawienie do niej QMessageBox. Jeżeli tak to uruchom program z uprawnieniami administratora. Jeśli to nic nie da, to hm..., zamień
out << "This file is generated by Qt\n";
 na:
out << "This file is generated by Qt";
 i uruchom program z uprawnieniami administratora. Gdyby to nie poskutkowało to... wyłącz komputer, powyzywaj na Qt i idź pooglądać telewizor... albo się napić... ;p.
P-21980
dmx81
Temat założony przez niniejszego użytkownika
» 2010-09-14 23:13:51
juz smiga - plik tworzyl sie i zapisywal nie w gownym katalogu program (czyli nie tam gdzie mam pliki zrodlowe i naglowki) ale w katalogu "nazwa-build-desktop" - to zapisywanie juz dziala, tylko czy teraz chcac cos odczytac z pliku podajac tylko nazwe "plik.txt" to plik ma byc w katalogu "projekt" czy "projekt-build-desktop" ?
P-21981
malan
» 2010-09-15 00:04:09
To zależy od Ciebie - dokładnie mówiąc od tego gdzie umieścisz plik. Jeżeli go umieścisz w
projekt-build-desktop/plik.txt
 to wystarczy podać
"plik.txt"
, w przeciwnym wypadku musisz podać całą ścieżkę.
P-21983
dmx81
Temat założony przez niniejszego użytkownika
» 2010-09-15 00:35:42
ok dzieki, myslalem ze glowny katalog czyli tam, gdzie nie podaje sie sciezek, to tak jak w przypadku include "mainwindow" - katalog z plikami zrodlowymi i zrodlami, ale teraz juz wiem, ze ten drugi :)
P-21984
« 1 »
  Strona 1 z 1