Programm stürzt nach einer Zeit ab
-
Hi, ich habe vor kurzem ein Prog geschrieben, was es mir ermöglicht mehrere Datein in eine zu packen. Das funktionierte bis jetzt auch wunderbar.
Nur hatte ich bis jetzt nur kleinere Datein gepackt. Doch wenn ich nun mehrere größere Dateien packen will, kommt nach einer Zeit ein Fehler.
Mein Quellcode sieht so aus :while(puffer !="") { pull2 =0; anzahlStrings++; m_in.Open(puffer, CFile::modeRead | CFile::typeBinary); i= 0; pull2 = m_in.GetLength(); <- hier kommt der fehler !!! int z = puffer.GetLength(); int y =0; while(z != y) { m_ctlStatus.StepIt(); puffer2=puffer; puffer = puffer.Left(y); if(puffer == m_Ziel) { z=z-y; puffer = puffer2.Right(z); z = y; } else { y++; puffer =puffer2; } } m_ctlStatus.StepIt(); puffer2.Format("%d$%s\n",pull2,puffer); outline = outline +puffer2; while(i != pull2) { m_in.Read(pbuf, 1 ); m_out.Write(pbuf,1); i++; } m_file.ReadString(puffer); DWORD gesamt = m_in.GetLength(); gesamtedatein = gesamtedatein + gesamt; m_in.Close(); }
zuerst habe ich gedacht, dass der VariablenTyp für pull2 schlecht gewählt war, ich hatte pull2 nämlich als long deklariert, doch auch als ich ein hyper daraus machte, stürzte mir das Programm an der Stelle ab. Die Variable wird immer wieder auf 0 gesetzt und ansonsten einfach überschreiben, sie kann eigentlich ihr maximum garnicht erreichen und dennoch sürzt es mir dort ab mit folgender Fehlermeldung :
Debug Assertion Failed!Program:C:\Data\C++\Packer\Debug\Packer.exe
File: filetxt.cpp
Line: 233blablabla!
Please Help !
-
Einen Fehler seh ich auf Anhieb nicht, aber bau mal einen Test ein, ob das m_in überhaupt geöffnet wird. Falls dem nicht der Fall ist, wäre das eine Erklärung für den Absturz beim Aufruf der Methode GetLength().
-
UPSALA !
Also ich hatte mein Prog dann mal richtig duch den Debuger gejagt und schier an jeder Stelle eine überprüfung eingefügt. und was kommt dabei heraus???
Jo ich vergesse einen Ordnerwechsel, so das er die Datei in einem darüberliegendem Ordner sucht.
Vielen Dank !