Logfile erstellen



  • Hallo,

    mit folgender Funktion bekomme ich den Speicherort für ein Logfile

    if (SelectDirectory(Path, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,0))
    		Label2->Caption = "Speicherort Logfile: " + Path;
    
    String LogFileSpeicherOrt = Path;
    

    nun habe das Problem mit fopen. Komme mit der Knvertierung nicht klar.

    FILE *outfile;
    String filename = LogFileSpeicherOrt+"test.log";
    
    outfile = fopen(filename, "a");
    ....
    

    Konvertierung von 'UnicodeString' nach 'const char *' nicht möglich.

    Hoffe Ihr könnt mir helfen.

    Danke, Markus



  • outfile = fopen(filename.c_str(), "a");
    

    Das sollte auch bei Unicode-Strings funktionieren.



  • Hallo...

    mgaeckler schrieb:

    outfile = fopen(filename.c_str(), "a");
    

    Das sollte auch bei Unicode-Strings funktionieren.

    Ne das funktioniert leider auch nicht.

    Folgendes funktioniert:

    outfile = fopen(AnsiString(filename).c_str(), "a");
    

    lg, markus



  • ljmarkus schrieb:

    Hallo...

    mgaeckler schrieb:

    outfile = fopen(filename.c_str(), "a");
    

    Das sollte auch bei Unicode-Strings funktionieren.

    Ne das funktioniert leider auch nicht.

    Folgendes funktioniert:

    outfile = fopen(AnsiString(filename).c_str(), "a");
    

    lg, markus

    Danke für die Richtigstellung, war mir nicht sicher, ob es c_str() auch bei Unicodestrings gibt.

    mfg Martin



  • Das gibt es auch bei UnicodeString, aber dann erzeugt es einen "wchar*": UnicodeString::c_str Method
    Die Funktion fopen erwartet aber einen "const char*"...

    Die Frage ist aber, warum du, @ljmarkus, überhaupt diese C-Funktion benutzt und nicht die VCL Dateifunktionen oder aber die STL Streams?


Anmelden zum Antworten