Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Kontaktdatenbank in C

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.01.2004, 22:22 Uhr
lubU



Hi all,

also ich habs schon geschafft dass
ein dass ein Datensatz (Ein Kontakt: Name, Strasse, Ort, Tel.....)
in eine Dateigeschrieben wird. Wenn man einen neuen Datensatz anlegt
wird der unter den ersten gesetzt.
Is ja bis dahin kein Problem.
Eine Suchfunktion gibts auch schon.
Das war auch mehr oder weniger einfach.

Die Einträge sollten aber bearbeitet und gelöscht werden können.
Hab keine wirklich Idee wie ich das machen soll.


Die "Datenbank" sieht im Moment so aus:

1 (Datensatz ID)
Vorname
Nachname
Strasse
Ort
PLZ
TelFestnetz
TelMobil
Email

2
Vorname
Nachname.....


man kann nach jeder Zeile suchen und bekommt
bei Übereinstimmung den jeweiligen Datensatz ausgegeben.

Ich hab mir überlegt dass es sinnvoll wäre jeden Datensatz in
eine Zeile zu schreiben, also:

1,Vorname, Nachname,Strasse,Ort.....
2,Vorname,Nachname......

Dann jede Zeile in nem struct mit den entsprechenden Feldern abspeichern.
Dann den struct der bearbeitet werden soll bearbeiten ( alles außer die Datensatz ID) und dann alle Datensätze also alle structs nacheinander kommagetrennt in die Datei reinschreiben.

Das Problem is, ich weiss nicht wieviele Datensätze ich habe
und müsst ja dann 1000000 structs reservieren und die dann alle wieder
in die Datei reinschreiben, das währe ja kompletter bullshit.

Habt ihr en Lösungsansatz wie ich das machen könnte?

P.S:
Könnte mir auch mal jmd erklären wie genau en struct funktioniert
hab nochnie mit structs gearbeitet (obwohl ich weiss was es is)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.01.2004, 22:33 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hm ich glaub da wird dir wohl nichts anderes übrig bleiben als immer die datei neu zu schreiben, da man nicht einfach beliebig zeichen zwischendrin einfügen kann...
wenn nicht könntest du z.b. auch mysql verwenden dann ist das mit dem updaten und löschen kein problem...

wie was genau meinst du mit dem struct?
nach deiner beschreibung oben würde ich es so deklarieren


C++:
typedef struct{ char Vorname[128];char Nachname[128];char Strasse[128];char Ort[128];int PLZ;char TelFestnetz[128]; char TelMobil[128];char Email[128];}myrecord;


falls es c++ sein darf statt der char-arrays lieber std::string verwenden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.01.2004, 08:15 Uhr
virtual
Sexiest Bit alive
(Operator)


Also wenn die Daten wirklich in einer struct vorliegen, wie sie Windalf beschrieben hat, insbesondere als eine Längenbegrenzung für die Namen vorliegt, so würde ich die Daten binär in der Datei ablegen (mit fread kannst Du dann Datensätze lesen, mit fwrite selbige schreiben). Der vorteil ist dann nämlich, daß alle Datensätze gleich lang sind.

Damit kann man schon mal ziemlich einfach Datensätze verändern. Das Löschen könnte man zB dadurch realisieren, daß man in das struct ein Flag aufnimmt, welches 0 ist, wenn der Datensatz gelöscht wurde, 1, wenn er existiert. Ein Löschen des Datensatzes kann also dadurch erfolgen, indem man dieses Flag einfach auf 0 setzt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.01.2004, 14:56 Uhr
lubU



Danke für eure Vorschläge.
Die Datenbank steht mittlerweile (ohne structs).
Anlegen, Editieren und Löschen der Einträge funktioniert.
Wer interessiert ist kann mir ne PN schreiben.

achja erwartet keinen zu guten Programmierstil ;o)

mfg

lubU

P.S.:
Compiliert mit Turbo C++ IDE von Borland

Dieser Post wurde am 30.01.2004 um 14:57 Uhr von lubU editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: