Als String übergebene Datei öffnen



  • Hallo,

    als Nur-gelegentlich-C++-Benutzer (*) verzweifle ich mal wieder an den Datentypen 😡 .
    Wie kann ich den als "String^ strRevisionFile" übergebenen Dateinamen öffnen?
    Aus anderen Beispiele habe ich einen Teil des Quellcodes abgeschaut, aber getline funktioniert auch nicht.

    (*) Normalerweise arbeite ich mit C im embedded Bereich 🙂

    int main(array<System::String ^> ^args)
    {
       int intRevision = 0;
       /* Tu etwas sinnvolles */
       intRevision = GetRevision(args[1]);
       /* Tu etwas anderes sinnvolles */
       return 0;
    }
    
    int GetRevision(String^ strRevisionFile)
    {
        Int32 int32Revision = 0;
        wchar_t *FileName; 
        String^ text; 
        ifstream RevisionFileStream; //Datei-Handle 
    
        FileName = strRevisionFile->c_str();
        RevisionFileStream.open(FileName, ios::in); //Datei wird geöffnet
    
        while (!RevisionFileStream.eof()) 
        {
            std::getline(RevisionFileStream, text); //Es wird jeweils eine Zeile ausgelesen
    //      cout << text << endl;
            RevisionFileStream.close();
        }
    
        return int32Revision;
    }
    

    Fehlermeldungen:
    1>------ Erstellen gestartet: Projekt: myprog, Konfiguration: Debug Win32 ------
    1> myprog.cpp
    1>myprog.cpp(66): error C2039: 'c_str': Ist kein Element von 'System::String'
    1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::String'
    1>myprog.cpp(71): error C2039: 'getline': Ist kein Element von 'std'
    1>myprog.cpp(71): error C3861: "getline": Bezeichner wurde nicht gefunden.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



  • Steht doch genau in den Fehlermeldungen. Du verwechselst wohl 'System::String' mit 'std::string'. Benutz ToCharArray statt c_str

    Wenn du aber C++/CLI richtig machen willst, benutzt du auch die entsprechenden Klassen zum Öffnen von Dateien, siehe hier:
    http://msdn.microsoft.com/de-de/library/y52yxde8.aspx


Anmelden zum Antworten