Dateinamen aus ofstream herausfinden



  • Hallo!
    ich habe ein ofstream-objekt, das ich ziemlich viel verwende (zum schreiben von text-dateien, ini-files usw. usf.)
    nun möchte ich aber xml serialisieren und würde gerne wissen, wie ich den dateinamen vom ofstream-objekt einem string-objekt zuweisen kann.

    ofstream file ("A:\\Datei.xml", ios::out);
    

    danke im voraus für jede mühe.



  • Hallo,
    Ich verstehe nicht ganz was du willst. 😕
    Wenn der Dateiname nur hardcodiert ist, dann hilft wohl nur

    std::string filename = "Datei.xml";
    

    Ansonsten kannst du z.B. sowas nehmen:
    (Kann sogar sein, dass die stdlib etwas derartiges bereits zur Verfügung stellt...)

    std::string basename(const std::string& rhs)
    {
        std::string::size_type p_start = rhs.find_last_of("/\\");
        std::string::size_type p_end = rhs.size() - p_start;
    
        if(p_start == std::string::npos)
        {
            p_start = -1;
    	p_end = rhs.size();
        }
        if(p_start == rhs.size() - 1)
        {
            p_start = rhs.find_last_of("/\\", p_start - 1);
            p_end = rhs.size() - p_start - 2;
        }
        return rhs.substr(p_start + 1, p_end);
    }
    

    Falls du das jetzt alles garnicht wissen wolltest, stell bitte eine genauere Frage. 🙂

    Gruß, Caipi.


Log in to reply