wie argument an ifstream.open() übergeben?



  • Die Operation open von ifstream verlangt einen konstanten char.
    Hier mal meine bisherige Operation:

    AnsiString TDaten::Credits()
         {
         AnsiString alles;
    
         ifstream fin;
         string szLine = "";
         string szWord = "";
         string szName = "";
    
         fin.open("credits.txt");        //Datei öffnen
    
         while(getline(fin, szLine))     //nimmt bei jedem Durchlauf eine Zeile aus
              {			     //der aufgerufenen Datei und hängt sie nach
              alles = alles + szLine.c_str() + "\n\r";     //AnsiString umgewandelt
              }                          //mit Zeilenumbruch an die Variable die
         return alles;                   //alles sammelt an.
         }
    

    Ich möchte gerne die Datei aus der ich lesen will als Übergabeparameter übergeben - Mein Problem ist jetzt das .open einen konstanten char will, kann ich ja verstehen, weil man normal den Dateinamen voll reinschreibt.
    Wie also Packe ich das am besten an?



  • ok, ein freundlicher user hat mir gerade weitergeholfen, hier meine neue operation:

    AnsiString TDaten::Lesen(const char *vonwo)
         {
         AnsiString alles;
    
         ifstream fin;
         string szLine = "";
         string szWord = "";
         string szName = "";
    
         fin.open(vonwo);        //Datei öffnen
    
         while(getline(fin, szLine))     //nimmt bei jedem Durchlauf eine Zeile aus
              {			     //der aufgerufenen Datei und hängt sie nach
              alles = alles + szLine.c_str() + "\n\r";     //AnsiString umgewandelt
              }                          //mit Zeilenumbruch an die Variable die
         return alles;                   //alles sammelt an.
         }
    

Anmelden zum Antworten