paar kleine fragen :)



  • 1. Geht mit dem C++-Standard:

    // remove, löscht Datei mit dem Pfad path und gibt 0 bei Erfolg zurück.
    int remove( const char *path );
    

    Sollte der Löschvorgang nicht erfolgt haben:

    ENOENT ... File nicht gefunden
    EACCES ... Kein Zugriff auf die Datei

    2. Geht in C++ nur eingeschränkt (nur sequentiell). Dazu findest du einiges in der C++-FAQ.

    3. Kommt nun endgültig in den Bereich des verwendeten Betriebssystems, 1&2 sind zwar auch schon fast BS-abhängig, allerdings sind sie grade noch so auch in den Standards. Also welches Betriebssystem nützt du?

    4. Geht ebenfalls mit dem Standard:

    // rename, benennt die Datei oldname in newname um
    int rename( const char *oldname, const char *newname );
    

    Hier gilt wiederrum, 0 bei Erfolg ansonsten:

    ENOENT ... File nicht gefunden
    EACCES ... Kein Zugriff auf die Datei
    EINVAL ... Name enthält ungültige Zeichen

    BTW: Für das bearbeiten von Dateien kannst du dir auch einmal den dirstream von Hume Sikkins ansehen, siehe dazu auf seiner Homeapge: http://bens.c-plusplus.info

    MfG SideWinder



  • weil ich es in konsole schreiben will deswegen dos konsole forum 🙂

    win2k



  • @ sidewinder meinst du so?

    const char path ="C:\jojo\lol.txt";
    const *char path = &path;
    remove(*path);

    bitte korrigieren 🙂



  • const char path ="C:\jojo\lol.txt";
    remove(path);

    oder
    remove("C:\jojo\lol.txt");

    sollte es auch tun 🙄



  • const char* path = "c:\\bla\\blub.dat";
    

    wenn schon...



  • unlink(Dateiname)                   //Dateien löschen
    rename(Dateiname_alt,Dateiname_neu) //Dateien umbenennen
    

    mfg Azubi



  • Original erstellt von mady:
    **

    const char* path = "c:\\bla\\blub.dat";
    

    wenn schon...**

    huch so habich das ja nochnie gemacht 😃 sicher das das tückenfrei ist? ich mein wo wird der String abgelegt?

    achso und eigentlich meinte ich

    const char path[] ="C:\jojo\lol.txt";
    


  • @dreaddy: ausser dass Du jetzt einen Vektor erstellst und ich einen Zeiger auf einen String, sehe ich hier erstmal keine Unterschiede in der Deklaration.

    Das doppelte '\' ist notwendig, weil ein '\' ein Sonderzeichen (z.B. \n, \t, ...) im String einleitet. Um einen einzelnen Backslash zu erhalten, muss dieser also zweimal geschrieben werden. Deine C-Doku sollte Dir hier weiterhelfen.



  • ich glaub ich fang gleich an zu lachen ^^ Jetz habich das auchnoch übersehn. Das mit dem \\ ist mir schon klar, aber ich sollt glaubich mal meine Brille putzen oder so 😃 *schäm* eigentlich ging ich davon aus das man mehr Fehler da nichtmehr machen kann.

    Ich frag mich nur ob beispielsweise sowas geht ohne das der Speicher freigegeben wird und unter Umständen überschrieben wird:

    char* pointer = "c:\\bla\\blabla.txt";
    
    void f1(void)
    {
      pointer = "blabla2";
    }
    
    int main(void)
    {
      f1();
      // hier irgendwas machen
      cout << pointer; // ist es noch definiert das in pointer "blabla2" drinsteht oder ist nur zufällig der freigegebene Speicher noch nicht neu überschrieben?
    }
    


  • Was macht ihr hier für ein Theater? Irgendwie wurde schon alles beantwortet was wichtig wäre. Sobald sich der entsprechende meldet kann er ein anderes Forum für eventl. weitere Fragen anbieten wo ich ihn hinschieben werde 😕:).

    @$oldier: Ja genau so, nur mit doppelten Backslashes :).

    MfG SideWinder



  • jo stimmt habs vergessen thx side und rest gg



  • const char path ="C:\\jojo\\lol.txt"; 😕


Anmelden zum Antworten