FileName



  • AnsiString richtigerpfad = StringReplace(SaveDialog1->FileName,"\\","\\\\",TReplaceFlags()<<rfReplaceAll<<rfIgnoreCase);
    
    ShowMessage(richtigerpfad);
    
    ActiveWorkBook.OleFunction("SaveAs", richtigerpfad);   // "C:\\test.xls" funzt
    

    Ich verstehs einfach nicht. wenn richtigerpfad den String "C:\\test.xls" enthält, funktioniert es trotzdem nicht?!



  • Hallo,

    du brauchst die Backslashes nicht durch 2 Backslahes ersetzen (diese 2 Backslahes werden nur im Source-Code benötigt: Stichwort: Escape-Zeichen).

    Also einfach

    AnsiString pfad = SaveDialog1->FileName;
    
    ShowMessage(pfad);
    
    ActiveWorkBook.OleFunction("SaveAs", pfad);
    


  • danke, aber das hab ich schon ausprobiert. da tritt der Fehler EOleSysError auf: Falscher Variablentyp. Soll ich mal den ganzen Code posten?



  • ich habs. ich muss pfad.c_str() aus irgendeinem grund verwenden.



  • momith schrieb:

    ich habs. ich muss pfad.c_str() aus irgendeinem grund verwenden.

    Der Grund ist einfach. OleFunction erwartet als Parameter (char 😉 oder (const char 😉 und AnsiString hat keinen cast operator dafür.

    mfg Martin


Anmelden zum Antworten