Problem : Znajdź w pliku .txt znak "M1" oraz "mode" to co jest pomiędzy nimi skasuj i zastąp innym tekstem



  • Tak jak w tytule potrzebuje by program wyszukał tekst miedzy M1 oraz mode usunął go a nastepnie zastąpił nowym tekstem (QString danezapisane).
    Być może to banał ale jestem dosyć zielony w programowaniu :/

    Moj kod
    void MainWindow::on_pushButton_5_clicked()
    {
    QString inputfileName="C:/Users//Desktop/wyjscie.txt";
    QFile inputfile(inputfileName);
    QTextStream cout(stdout);
    QString danezapisane;
    cout<<"zapisywanie do pliku"<<endl;
    if (!inputfile.open(QIODevice::ReadOnly | QIODevice::Text)) {
    QTextStream danedobre(&inputfile);
    while(not danedobre.atEnd()){
    danezapisane=danedobre.readAll();
    QString text(danezapisane);
    cout<<danezapisane<<endl;
    }
    }
    QString outputfileName="C:/Users/
    */Desktop/model.txt";
    QFile outputfile(outputfileName);

    if (!outputfile.open(QFile::WriteOnly|QIODevice::Text ))  {
       QMessageBox::warning(this, tr("Recent Files"),
                             tr("Cannot write file %1:\n%2.")
                             .arg(outputfileName)
                             .arg(outputfile.errorString()));
        return;
    }
    
    
    
    outputfile.close();
    

    }



  • A jaki masz konkretny problem?
    Kompiluje Ci się w ogóle to ?
    Bo widze tutaj namiastke operacji na plikach, ale próby kodu problemu już nie..

    A poza tym warunek w pierwszym if powinien byc odwrotny - jesli nie otworzy pliku to powinien wypisac jakis blad i return, a wszystkie operacje ktore sa w bloku powinny byc przy warunku odwrotnym, czyli jak plik otworzy sie poprawnie.



  • Tak jak ligras napisał, przydałoby się więcej szczegółów.
    Fajnie też by było jakbyś wrzucił kod w 'znacznik' kodu (bo ciężko się to czyta). :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.