Beschränkung Dateigröße ???



  • Moin moin

    Ich habe doch diese Formatierung

    Weg.Format("%.2lf",s_in_km);
    

    wenn ich in meinem Dokument welches ich beschreibe die Zeile 1000 erreicht habe, bringt er an dieser Stelle einen Fehler, jedoch steht dieser Wert ansonsten nicht in Zusammenhang mit anderen.
    Wenn der zeit_s den Wert 1000 erreicht hat ist dann halt der Fehler.

    Ist an dieser Formatierung irgendetwas falsch gemacht?

    cu



  • Ich weiss jetzt nicht ob es daran liegt, aber bei einem Float-Wert kann man meines Wissens nach den "l"-Format-Bezeichner vergessen. Also statt

    %.2lf
    

    würde ich mal

    %.2f
    

    versuchen.



  • Ja ist schon richtig - hab ich auch probiert, ohne Erfolg 😞

    Wenn ich den Wert als double in die Datei reinschreibe, steht dann nur Schmutz drin- das bringt alles durcheinander. Wird er gleich weggelassen läuft alles bis zum Ende durch. Es müssen also Strings sein. Gibt es noch eine andere Möglichkeit zur Konvertierung?

    Mit _ecvt tritt exakt das selbe Problem auf - ich kann nicht mehr wie 999 Werte konvertieren, HELP 🙄 ???

    Woran kann das liegen, und wie kann ich dieses Problem lösen?



  • Hat das vielleicht etwas mit dem Heap zu tun, weil er bringt die Fehlermeldung in der Datei dgbheap.c ?



  • roeschti schrieb:

    Hat das vielleicht etwas mit dem Heap zu tun, weil er bringt die Fehlermeldung in der Datei dgbheap.c ?

    Zeig doch mal den genauen Wortlaut der Fehlermeldung und die Aufrufliste zu dem Zeitpunkt, wo der Fehler auftritt.



  • Also hier die Fehlermeldung:

    Debug Assertion Failed!
    Programm: .....\ ...\.. .exe
    File:dbgheap.c
    Line:1011

    Expression: _CrtIsValidHeapPointer(pUserData)

    For information....
    usw.

    Was meinst du mit Aufrufliste?
    Bei

    Weg.Format("%.2f",s_in_km)
    

    steigt er beim 1000mal aus.



  • roeschti schrieb:

    Was meinst du mit Aufrufliste?

    Aufrufliste, in der englischen Version "Callstack". Ein Debugfenster, in dem eine Liste der Funktionen steht, die gerade aufgerufen sind.

    Du hast da irgendein Speicherproblem. Ich vermute, dass es nichts mit dem Code an dieser Stelle zu tun hat, sondern sich erst dort bemekrbar macht.



  • Also hier ist die Aufrufliste:
    F_Berechnung_Weg ist die Funktion in der ich gerade arbeite, die wiederum von der Funktion OnGeschwZeit aus CChildFrm aufgerufen wird.
    Mit dem rest kann ich nicht viel anfangen.

    CGPS_04_DocAnsichtDoc::F_Berechnung_Weg() line 294
    CChildFrame::OnGeschwZeit() line 126
    _AfxDispatchCmdMsg(CCmdTarget * 0x004328c0 {CChildFrame hWnd=0x003f0674}, unsigned int 32773, int 0, void (void)* 0x0040120d CChildFrame::OnGeschwZeit(void), void * 0x00000000, unsigned int 12, AFX_CMDHANDLERINFO * 0x00000000) line 88
    CCmdTarget::OnCmdMsg(unsigned int 32773, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 302 + 39 bytes
    CFrameWnd::OnCmdMsg(unsigned int 32773, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 894 + 24 bytes
    CWnd::OnCommand(unsigned int 32773, long 0) line 2088
    CFrameWnd::OnCommand(unsigned int 32773, long 0) line 317
    CWnd::OnWndMsg(unsigned int 273, unsigned int 32773, long 0, long * 0x0012fafc) line 1597 + 28 bytes
    CWnd::WindowProc(unsigned int 273, unsigned int 32773, long 0) line 1585 + 30 bytes
    AfxCallWndProc(CWnd * 0x004328c0 {CChildFrame hWnd=0x003f0674}, HWND__ * 0x003f0674, unsigned int 273, unsigned int 32773, long 0) line 215 + 26 bytes
    CMDIFrameWnd::OnCommand(unsigned int 32773, long 0) line 55 + 35 bytes
    CWnd::OnWndMsg(unsigned int 273, unsigned int 32773, long 0, long * 0x0012fcc4) line 1597 + 28 bytes
    CWnd::WindowProc(unsigned int 273, unsigned int 32773, long 0) line 1585 + 30 bytes
    AfxCallWndProc(CWnd * 0x004313b0 {CMainFrame hWnd=???}, HWND__ * 0x004905dc, unsigned int 273, unsigned int 32773, long 0) line 215 + 26 bytes
    AfxWndProc(HWND__ * 0x004905dc, unsigned int 273, unsigned int 32773, long 0) line 368
    AfxWndProcBase(HWND__ * 0x004905dc, unsigned int 273, unsigned int 32773, long 0) line 220 + 21 bytes
    USER32! 77d18709()
    USER32! 77d187eb()
    USER32! 77d189a5()
    USER32! 77d1bccc()
    CWinThread::PumpMessage() line 846
    CWinThread::Run() line 480 + 11 bytes
    CWinApp::Run() line 400
    AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f3f, int 1) line 49 + 11 bytes
    WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f3f, int 1) line 30
    WinMainCRTStartup() line 330 + 54 bytes
    KERNEL32! 7c816d4f()



  • roeschti schrieb:

    CGPS_04_DocAnsichtDoc::F_Berechnung_Weg() line 294

    Ist das die Aufrufliste zu dem Zeitpunkt, wo der Fehler auftritt, oder ist das ein Haltepunkt? Eigentlich müsste darüber noch etwas stehen.



  • Ich entschuldige mich für die Belästigung und danke allen Beteiligten 😃

    Der Fehler lag in der Zeile

    zeit_s=itoa(t+1,string,10);
    

    Das macht er ab 1000 nicht mehr mit.

    tschö mit ö



  • Hallo,

    ändere mal char string[4] in einen größeren Wert z.B. char string[16) um!
    In string[4] passen max. 3 Zeichen +"\0"

    Tester2


Anmelden zum Antworten