file auslesen



  • auch nichts.....



  • Und? Was sagt dir GetLastError zu dem Thema?

    Sicher, dass du die Datei nicht schon mit einem anderen Programm geöffnet hast?

    Lass sie dir doch mal zu Testzwecken direkt davor anlegen. Dann bist du ganz sicher, dass sie da ist, wo sie sein soll, und das kein anderer den Daumen drauf hat.

    Zum F11 Debug: War echt kein Grund zu erkennen, warum die Datei nicht geöffnet werden kann?



  • So jetzt mal:

    - Setze einen Breakpoint auf die Verzweigung
    - Kompiliere starte dein Prog
    - Lasse ihn bis zu dem Punkt hinlaufen
    - Gehe dann Schritt für Schritt weiter
    - gucke dir an was in der Variablen error oder cfeExcpetion steht
    - Steht da null drin dann hats nix mit dem Aufruf zu tun dann ist es
    was anders

    ansonsten
    reinige mal dein Projekt (Clean Project/Solution)
    lasse es mal neu compilieren usw.

    Hellsgore



  • danke,
    ich hatte das file schon mal geöffnet, ich hoffe das ich es jetzt zu ende bekomme. Danke soweit hatte ich wirklich noch nicht gedacht.

    🙂



  • hallo,

    ich habe wieder probleme mit einer if- anweisung.
    hab schon kontolliert, sie wird geschlossen.
    leider lässt sie sich nicht öffnen:

    if (out_file.Open(gaga, CFile::modeReadWrite, &cfeException))
    			 { 
    			UpdateData(true);
    				DWORD haha = out_file.GetLength();			
    						//	MessageBox(haha);
    				DWORD dwActual = out_file.SeekToEnd();  
    .
    .
    .
    }
    

    könnt ihr mal drüber schauen was es sein könnte??



  • Was passiert denn?
    Er geht nachdem er einmal in die Verzweigung reingegangen ist nicht mehr darein? Dann könnte es daran liegen das du die Datei nachdem du sie beschrieben oder gelesen hast wieder schließen solltest bevor du diese neu öffnest.

    Hellsgore



  • ich lese doch den pfad des files aus der anweisung, mit der ich vorhin probleme hatte.:

    if (in_file.Open(name, CFile::modeRead, &cfeException))
    	 { 			
    
    		DWORD haha = in_file.GetLength();
    		in_file.ReadString(buf,haha+2);
    
    		gaga = buf;
    
    		MessageBox(gaga);
    	in_file.Close();
    

    jetzt möchte ich dieses gaga öffnen:

    if (out_file.Open(gaga, CFile::modeReadWrite))
    			 { 
    			UpdateData(true);
    				DWORD haha = out_file.GetLength();			
    						//	MessageBox(haha);
    				DWORD dwActual = out_file.SeekToEnd();  // ende des files suchen
    
    				MessageBox(gaga);
    			// deklaration output file
    .
    .
    .
    .
    

    und da hängt es schon wieder, er öffnet mal wieder nicht das file......



  • Dann setze doch mal bitte am ende der If - Verzweigung nachdem sie geschlossen worden ist ein DWORD error = GetLastError() hin. Dann guckst du was in error drin steht und gibst mir mal diese Zahl.

    Hellsgore



  • es gibt nichts aus,
    soll das als so eine art messagebox ausgegeben werden??
    Es gibt aber wirklich nichts aus als fehler



  • Nein es kommt keine msgbox oder so.
    Er schreibt einfach nur einen Fehlercode in die Variable error rein. Diese kann man dann nachguckne was sie bedeutet.
    machs einfach so damit du das verstehst:

    DWORD error = GetLastError();
    AfxMessageBox(error);
    

    und sage mir dann was er angezeigt hat

    Hellsgore



  • Debug assertion failed!!
    Program:...
    File: appui1.cpp
    line: 143

    .....
    hat er geschrieben



  • Oh sorry
    Kinderfehler von mir.....

    DWORD error = GetLastError();
    CString strTemp;
    strTemp.Format("%d",error);
    AfxMessageBox(strTemp);
    

    machs sonst kann er das nicht *g*

    Hellsgore

    und dannach solltest du echt einmal ein wenig herumspielen wie man einen Quellcode durchdebugged und zwar schritt für schritt ich denke mal das hast du bisher noch nicht gemacht und von daher kannst du dann auch nicht wissen wo er hängen bleibt.



  • 32

    ich probier aus, aber anscheinent das falsche.....



  • So
    also Fehler 32 =
    32 The process cannot access the file because it is being used by another process. ERROR_SHARING_VIOLATION

    Das bedeutet die Datei ist bereits vorher schonmal geöffnet worden und ist zu der Zeit immernoch offen. Schaue mal nach wo du diese Datei vielleicht noch öffnest oder welches Programm noch darauf zugreift oder ob du vielleicht Notepad noch mit dem File offen hast.

    Hellsgore

    So Fehler findest du am besten mit GetLastError() so wie ich dir das gezeigt habe. Dann gehst du in die Hilfe suchst nach GetLastError und dann nach System Error Codes



  • aha, danke

    ich dachte eigentlcih das ich es schon überall geschlossen hätte, muss ich nochmal schauen.

    danke



  • wie bekomme ich den raus was welche fehler nummer bedeutet???
    Was heisst fehler 183 ????????



  • Also, ich habe dazu ein nettes Kapitel in der MSDN gefunden. (Win32 Error Codes)

    Dazu habe ich einfach nach ERROR_SHARING_VIOLATION gesucht.

    Alternativ kannst du die Suchfunktion vom Windows-Explorer auf dein Visual Studio Verzeichnis ansetzen: *.h mit Inhalt ERROR_SHARING_VIOLATION

    PS: 183 = ERROR_ALREADY_EXISTS



  • DANKE


Anmelden zum Antworten