Qt: brauch hilfe bei QStrings



  • void Form1::FileDialog()
    {   
        s = QFileDialog::getOpenFileName( //QString
                        "/home",
                        "Archiv (*.bz2 *.gz *.tar *.tar.gz *.tar.bz2)");
    
        lineEdit_path->setText(s);
    }
    
    void Form1::install()
    {
      system("tar xf " + s);
    

    also ich öffne eine datei und speichere in s den pfad.
    in der nächsten funktion enpacke ich die datei. und will dann in das verzeichnis des ordners des enpackten archives. typisch ist s - ".tar.***" wie krieg ich das hin?
    gibts eine "system" unabhängige mögl.? 😋

    mfg cu



  • öhm... mal nicht zu deiner frage, aber was ist wen ich als dateinamen "bla.tar.bz2; rm -rf /;" eintippe? denn hast du n problem würd ich mal sagen *so zur sicherheit*

    und zu deiner frage, lass dir doch mit tar --list -f datei.tar.bla einfach den inhalt zurück geben und die kürzeste rückgabe müsste ja der ordner sein...



  • hast schon recht. ich wollt ein graphischen installer machen und da hab ich erst mal mit dieser idee angefangen, werd mir später mal was anderes ausdenken!



  • -Foo- schrieb:

    öhm... mal nicht zu deiner frage, aber was ist wen ich als dateinamen "bla.tar.bz2; rm -rf /;" eintippe? denn hast du n problem würd ich mal sagen *so zur sicherheit*

    und zu deiner frage, lass dir doch mit tar --list -f datei.tar.bla einfach den inhalt zurück geben und die kürzeste rückgabe müsste ja der ordner sein...

    ich würde wetten, dass das von

    QFileDialog::getOpenFileName

    verhindert wird.



  • amnesius schrieb:

    und will dann in das verzeichnis des ordners des enpackten archives.

    Irgendwie fehlt diesem Satz die Aussage. Was meinst du wirklich?

    So rumgestochert: Kennst du QDir und QFile?



  • nein, hab ich noch nicht ausprobiert!
    also ursprunglich wollte ich nach dem entpacken in das verzeichnis (cd )
    und dann kompillieren(entsprechend vorher getätigter einstellungen).
    um das zu machen wollte ich den QString "s" zerlegen, d.h. dass ich das .tar.*** vom rest des strings trenne.
    es war aber nur sonne idee!
    wie würdet ihr das problem am besten lösen, wenn ihr nen installer-gui schreiben würdet?



  • Mal die Gretchenfrage: Wozu willst Du überhaupt selbst einen graphischen Installer schreiben? Dazu gibt es doch schon zig wunderschön erweiterbare fertige Lösungen.



  • das ist eine dumme frage!
    wozu programmiert man? es gibt ja schon für jedes gebiet zig lsg.



  • amn... schrieb:

    das ist eine dumme frage!

    Nein, durchaus nicht; wenn Du nur üben möchtest, dann ist das natürlich ok, aber es gibt genug Installer für jeden Anwendungszweck, um nicht aus anderen Gründen noch einen zu schreiben.

    wozu programmiert man? es gibt ja schon für jedes gebiet zig lsg.

    Naja, aber Du wirst Dir ja so etwas elementares hoffentlich nicht immer selbst schreiben, oder? Ich meine verwendest Du auch nur selbst gebastelte Linked-Lists und Strings und...?



  • 🕶 na klar!

    wir entfernen uns aber von der eigentlichen frage!
    eigentlich sollte der installer sorce pakete installieren abhängigkeiten erschließen und sowas wie installwatch machen zum entfernen!

    also ich bin für alles offen!



  • im übrigen noch was. ich mache das NUR zur übung. ich gehe noch aufs gym und habe für sowas den ganzen tag zeit. und zudem LEIDER wenig erfahrung darum wollte ich mal so hören wie man das am besten macht.
    mir kam noch sonne idee kann man mit popen die system(...) ausgaben abfangen?
    odersoll ch einfach qstrings zerlegen? wenn ja wie 😕


Anmelden zum Antworten