Hilfe! Binär schreiben/lesen geht nicht!

Hallo Leute,
ich brauche ganz dringend eure Hilfe. Ich muss morgen ein IT-Projekt abgeben, in dem ich eine Datenbank schreiben will. Die Einträge dieser Datenbank will ich binär speichern und auslesen, aber genau da liegt mein Problem: Es will einfach nicht gehen. Ich habe meinen Quelltext jetzt schon 100mal nach Fehlern abgesucht, Google durchsucht und bin zu keiner Lösung gekommen.

Naja ich hoffe irgendwer kann mal einen Blick über meinen Quelltext werfen und findet den Fehler:

http://nopaste.info/abedd47b1d.html

Ich bin für jeden Tipp dankbar. Sorry, falls ich gegen irgendwelche Forenregeln verstoße.

Gruß,
André

Hallo André,

  1. fclose()
  2. fseek() // ???

MfG Peter(TOO)

Hallo Andr´

ich brauche ganz dringend eure Hilfe. Ich muss morgen ein
IT-Projekt abgeben, in dem ich eine Datenbank schreiben will.

Morgen? Sonntag?

Die Einträge dieser Datenbank will ich binär speichern und
auslesen, aber genau da liegt mein Problem: Es will einfach
nicht gehen. Ich habe meinen Quelltext jetzt schon 100mal nach
Fehlern abgesucht, Google durchsucht und bin zu keiner Lösung
gekommen.
Naja ich hoffe irgendwer kann mal einen Blick über meinen
Quelltext werfen und findet den Fehler:
http://nopaste.info/abedd47b1d.html
Ich bin für jeden Tipp dankbar. Sorry, falls ich gegen
irgendwelche Forenregeln verstoße.

Das ist schon ok, Du hast Dein Bestes versucht und kommst
nicht weiter. Soweit ich das beurteilen kann, ist das ein
ziemlicher Kuddelmuddel geworden, der rein vom Ablauf her
so nicht gehen kann (ungeachtet des Fehlers, der bereits
von Peter entdeckt worden ist - und vielen anderen).
Ich denke, hier mußt Du nochmal prinzipiell darüber
nachdenken, was Du wann genau machen willst und den Ablauf,
den Du erreichen willst, erstmal klar und deutlich
(in Worten) aufschreiben.

Mit „stundenlang herumprobieren“ wird das nix.

Du kannst auf diese Weise keine std::string-Datentypen
verwenden, da diese eine variable Größe besitzen, hier
kann man nicht mit „sizeof(stringarray)“ ankommen.
Du mußt entweder feste Recordgrößen nehmen (array of char)
oder eine Verwaltung variabler Größen korrekt implementieren.
Letzteres liegt, nach Deinem Quelltext zu urteilen, derzeit
noch außerhalb Deiner Möglichkeiten. Die Grundstruktur
eines Datenbankrecords wäre daher:

 ...
 enum {
 LMAX\_VORNAME = 64,
 LMAX\_NACHNAME = 64,
 LMAX\_TEL = 32
 };

// neue struct datenbank:
 struct db\_entry {
 char vorname[LMAX\_VORNAME];
 char name [LMAX\_NACHNAME];
 char tel [LMAX\_TEL];
 };

 ...

Grüße

CMБ

Hallo Leute,
also ich wollte nur nochmal Rückmeldung geben, dass ich das Projekt jetzt fertig bekommen habe. Ich danke euch, dass Ihr euch kurz Zeit genommen habt, mir zu helfen. Ich habe mich heute (Samstag) noch mal den ganzen Tag hingesetzt und habe die Fehler gesucht und dann nach 8 Stunden Arbeit gefunden ^^. Es lag auch an dem von Peter gesagten Fehler

Morgen? Sonntag?

Zur Erklärung, die eigentliche Abgabe war am Freitag in den 1. und 2. Stunde. Der Lehrer hat die Sondergenehmigung gegeben es ihm bis Freitag um 0 Uhr zu schicken. Da es aber noch voller Fehler war und nicht ging konnte ich es nicht weg schicken. Also habe ich noch bis um 4 dran gearbeitet und dann am Samstag von 11 - 20 nochmal. Jetzt habe ich es weg geschickt.

Wer ein Blick auf das fertige Projekt werfen will (vllt. habt Ihr ja noch ein paar gute Tipps für mich):
http://nopaste.info/fc85e02274.html

Danke für eure Hilfe!

Gruß,
André