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Б