Datei öffnen mit CStdioFile



  • Ich möchte gern eine Date auslesen, bekomme aber bei dem folgendem Code immer einen Fehler, wenn ich ihn ausführen will. WARUM ??

    int CTest::DateiLaden( CString sName )
    {
    	CStdioFile	sf;
    	CString		str, sBuf;
    	int			nItems=0, i = 0, iVer=-1, iPos = 0;
    	int			iRet=0, iVal = 0;
    	int			iWrongVer = 0;
    
    		if( !sf.Open( sName, CFile::modeRead , NULL ) )
    		{	
    			str="Nicht offen"
    			AfxMessageBox(str);			
    		}
    		else
    		{
    				if( sf.ReadString(str) )
    					m_bSchrittModus = atoi(str);
    
    				if( sf.ReadString(str) )
    					m_iSchrittweite = atoi(str);
    
    				if( sf.ReadString(str) )
    					m_iGeschw = atoi(str);
    
    				if( sf.ReadString(str) )
    					nItems = atoi(str);
    		}
    
    		AfxMessageBox(nItems);
    
    	return iRet
    }
    

    Wär für eure Hilfe echt dankbar. 😉



  • Ich fange mal an, mit dem Raten... 😃
    In sName steht bestimmt sowas wie C:\Temp\Datei.txt drinn, stimmts ?



  • naja. Eigentlich ist es so.
    sName = "test.prg"

    Ist das Falsch 😕

    willst du nochwas wissen?
    Nicht das du oder jemand anderes, wieder raten must.



  • Naja, ich habe auf einzelne \ getippt...
    Versuch es mal mit dem ganze Pfad und doppelten \\ also z.B. C:\\Temp\\Datei.txt



  • Das ich den "\" maskieren müsste, weiß ich. Aber ich habe garkeinen drin. also muß ich einen kompletten Pfad eingeben, ja!?

    Klappt aber so immernoch nicht.



  • wo triegt der Fehler ein und wie heisst er ?????



  • Dann tippe ich mal weiter...
    Wie sieht es denn erfolgsmässig aus, wenn du
    if( !sf.Open( sName, CFile::modeRead , NULL ) )
    ersetzt durch
    if( !sf.Open( sName, CStdioFile::modeRead ) )
    ?



  • Sorry für die aufregung hier.
    Jetzt klappt es.
    Habe einfach den vollständigen Pfad eingetragen.

    Dachte der fehler war dann weiter da zu suchen, aber der lag da, wo die Funktion aufgerufen wurde. (Eher kurz danach 😉 )

    Ist es auch möglich den relativen Pfad anzugeben?
    Ach, Probieren geht über Studieren 🙂

    BYE
    UND Danke



  • Du kannst unter Projekteigenschaften ein Arbeitsverzeichnis angeben. Dann geht es auch mit einem relativen Pfad.

    Wenn man da nix eingibt ist es glaubich immer das Verzeichnis, wo die *.dsp des aktiven Projektes liegt.


Anmelden zum Antworten