Fehler mit FileOpen



  • Hi.
    ich habe folgenden code, der an eine txt datei eine zeile anhängt.
    funktioniert auch super bis ich eine Methode aufruf, in der auf Execute() von einem openpicture dialog aufgerufen wird. Nach diesem Aufruf bekommt ich immer einen fehler, wenn ich versuche neue zeilen an das Deteiende der txt datei zu schreiben...obwohl die unten stehende funktion keinerlei nutzen von dem PictureOpenDialog macht !!?
    nun weiss ich zwar aufgrunddessen, dass die funktion false zurückliefert, dass der fehler in der Zeile "if (ilHandle >= 0)" auftritt, dass ich keinen handle von FileOpen() bekomme. Aber warum nicht, wie kann ich die fehlersuche noch weiter eingranzen ?

    int ilHandle = FileExists(slFileName) && blAppend ?
            FileOpen(slFileName,fmOpenReadWrite) :
            FileCreate(slFileName);
        if(ilHandle >= 0)    //Fehler
        {
          FileSeek(ilHandle,0,2);
          FileWrite(ilHandle, slTextToSave.c_str(), slTextToSave.Length());
          FileClose(ilHandle);
          return true;
        }
        else return false;
    

    MfG



  • Wenn du im OpenDialog in ein anderes Verzeichns wechselst dann ändert sich damit das current directory, also das Arbeitsverzeichnis des Programmes.
    Deshalb immer schön mit absolute Pfadangaben arbeiten, z.B. ausgehend von Application::ExeName.



  • Vielen Dank Jansens habs grad selber rausgefunden, es lag tatsächlich daran. was ist eigentlich das .\filename.ext ? für was steht das .\ ?
    ist das ein platzhalter für das "current dir" ?



  • Hallo

    das ist ein Platzhalter aus der guten alten DOS-Zeiten.
    Es steht für das aktuelle Verzeichnis.
    Dann gibt es noch den doppelten Punkt, dss steht für eine Verzeichnisebene höher wechseln.

    bis bald
    akari



  • Der gute . hat nichts mit DOS zu tun, dass kommt von UNIX.

    '.' ist der Dateiname (ja Dateiname!) des current directory
    '..' ist der Dateiname des parent directory
    '...' ist glaube ich home, oder root oder sowas



  • F98 schrieb:

    Der gute . hat nichts mit DOS zu tun, dass kommt von UNIX.

    Ja, und der gute Bill hat da wohl abgeschaut...........

    👎


Anmelden zum Antworten