StringGrid speichert nicht mehr als 12 Datensätze



  • Hi,
    folgendes Problem:
    Wir haben in einem Datenbank Projekt (immer noch....) eine StringGrid in der die einzelnen Datensätze angezeigt werden sollen. Darunter befinden sich LabeledEdit´s in die die einzelnen Infos geschrieben werden. Ein Button erzeugt dann den Eintrag, da es sehr viel Quelltext wäre um den Vorgang hier zu zeigen, lasse ich das. Wie im Titel erwähnt kann ich das ganze 11 mal machen, beim zwölften mal schreibt er in eine der Cells eine 0 und beim dreizehnten mal klicken des "Hinzufügen Buttons" ist die ganze Liste weg und er fängt an wieder von oben einzutragen. Beim Drücken des "Hinzufügen" Buttons werden die Datensätze gleich in eine Datei gespeichert (

    FILE*fihotel=fopen("ihoteldat.save","w");
            fwrite(&ihotel,sizeof(ihotel),1,fihotel);
            fclose(fihotel);
    

    )
    Hoffe ihr könnt mir helfen...



  • Da das Problem offensichtlich eindeutig reproduzierbar ist, wäre es doch nicht verkehrt, sich mal nach Debugtechniken umzuschauen, ein paar Breakpoints zu setzen, ein bischen durch den Porgrammcode zu schreiten und mal überprüfen ob das Programm auch wirklich das macht was du dir von den Schreibereien erhofft hast? Damit könntest du dann mindestens mal den Fehler eingrenzen auf ein handliches Stück code, dass du dann immernoch posten kannst.

    -junix



  • Wobei, auch wenn mir das Codestück nix sagt fällt mir spontan auf: Du benutzt binäre operationen (fwrite) obwohl du die Datei im ASCII-Mode geöffnet hast? Ausserdem öffnest du die Datei nicht im Anfügemodus und die alten Daten werden einfach überschrieben?

    Ausserdem solltest du vielleicht von den std C-Funktionen absehen und ev. VCL-Fileklassen benutzen. Die bieten noch ein paar Möglichkeiten mehr.

    -junix



  • Naja, wir überschreiben die alten Daten nicht, durch andere Befehle wie "fseek" und so was. Es klappt auch alles wunderbar, nur ab dem 13. Eintrag fängts halt wieder von vorne an. Kann es sein das bei dieser Speichermethode einfach nicht mehr gespeichert werden kann oder so?
    Wir stehen wirklich ratlos da im Moment



  • Was soll das denn mit dem StringGrid zu tun haben?



  • Naja, das ganze Programm hängt sich ja dann auf, und wir müssen es über Task manager schließen, oder von Borland Builder aus. Also muss es ja nicht unbedingt der String Grid sein, ich denke darin sieht man nur die Auswirkkungen eines Fehlers den wir leider immer noch nicht gefunden haben.



  • Falls du noch auf Hilfe hoffst wirst du wohl etwas mehr Code zeigen müssen.


Anmelden zum Antworten