textdatei auslesen



  • eigentlich schon. funktioniert aber nicht so recht.

    habe es so :

    fstream fpath(pfad_gesamt);
    CString path;
    getline(fpath,path);
    

    in pfad gesamt steht: C:\\ordner\\test_11\\SOURCE\\J2V3090c.s51



  • achso , die fehlermeldung:

    c:\dokumente und einstellungen\software\desktop\bin_maker\make_bin_1\s51dlg.cpp(554) : error C2664: '__thiscall fstream::fstream(int)' : Konvertierung des Parameters 1 von 'class CString' in 'int' nicht moeglich
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
    c:\dokumente und einstellungen\software\desktop\bin_maker\make_bin_1\s51dlg.cpp(556) : error C2065: 'getline' : nichtdeklarierter Bezeichner
    Fehler beim Ausführen von cl.exe.



  • Du solltest auch nicht mit CString's arbeiten, sondern mit std::string (alternativ könntest du dir mal die Methoden von CFile ansehen, wenn du sehr viel Wert auf die MFC-Klassen legst).

    (und du brauchst ein #include <string>)



  • solltest vllt. den std::string aus <string> nehmen 😉 und nicht das MFC zeug...



  • da ich eh mit mfc arbeite bietet sich die CString klasse halt an und ist sehr konfortabel.
    also geht das nicht mit CString ??

    danke



  • lego_om schrieb:

    da ich eh mit mfc arbeite bietet sich die CString klasse halt an und ist sehr konfortabel.

    Da Du mit C++ arbeitest, bietet sich die std::string-Klasse an und ist sehr komfortabel ...

    => Pattsituation.



  • das problem ist,das ich nicht weiss wie man einen CString zu einem "normalen" string konvertiert. ich habe im ganzen programm nur CStrings verwendet. ich mein pfad inkl der dateibenennung steht ebenfalls in einem CString. den müsste ich erst zu einerm "normalen" string konvertieren um mit dem beispiel arbeiten zu können.

    wie soll ich vorgehen ??

    danke



  • Hallo

    Die Konvertierung sollte über C-Strings laufen

    std::string Origin = "...";
    CString Dest = Origin.c_str();
    

    Allerdings dürfte in der MFC (ähnlich wie in der VCL) auch eigene Strukturen zum Laden von Dateien und -zeilen geben, die direkt mit CString arbeiten.

    bis bald
    akari



  • man kann CString-Objekte einfach per type-casting nach LPCTSTR konvertieren:

    getline(filestream, (LPCTSTR)path);
    


  • ist doch nicht so gut. gibt laut msdn nen zeiger auf read-only. besser _tcscpy benutzen.



  • Man kann in einen konstanten String auch so toll etwas einlesen 🙄

    EDIT:
    Okay, die Einsicht kam vor mir 😉



  • Wie wäre es mit:

    std::string s;
    std::ifstream fpath(pfad_gesamt); 
    std::getline(fpath,s);
    CString path = s.c_str();
    

Anmelden zum Antworten