Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » "datenbank" 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
22.12.2003, 21:57 Uhr
lubU



Ist es möglich eine Art Datenbank anzulegen ?

Name
Anschrift
etc.. in eine Dateí zuschreiben
und neue "datensätze" hinzuzufügen is ja kein Problem
( FILE* = fopen("datei.xxx","a") ),
aber wie kann ich eine art Suchfunktion einbinden?
ich müsste quasi jede Zeile einlesen
und die dann durch strcmp mit der eingabe vergleichen
und dann quasi wenn jmd Heinz eingibt. alle Daten zu Heinz anzeigt.

Ist es sinnvoll für jeden "Datensatz" ( soll en addressbuch werden )
ne einzelne Datei anzulegen?
weil dann kann ich ja wenn das ergebnis in der datei1 ist und diese
nur einen Datensatz ( Stammdaten von Heinz ) enthält, diese datei anzeigen.

aber das wird ja dann en mega code mit 100000 fopen().

Irgendwelche Ideen wie ich an das Problem rangehen könnte ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.12.2003, 22:07 Uhr
Pablo
Supertux
(Operator)


Das ist schon möglich, aber du musst dich zuerst überlegen, wie DU die Daten speichern willst und wie viele Dateien du für die Datenbank, mit den Tabellen und so benötigst. Du musst dir zuerst dein eigenes Format überlegen, wie die Daten gespeichert werden müssen und sie in C umsetzen. Es gibt keine (nicht das ich wüsste) fertige (standard) Funktionen, die das machen.


Bearbeitung von Pablo:

Wenn du schon weißt, wie du die Daten anlegst, dann kannst du dir überlegen, wie du eine Suchfunktion einbauen kannst, das hängt auch davon ab, ob du alle Daeien in Variablen lädst, oder sie lädst, wenn du sie benötigst, usw.


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 22.12.2003 um 22:09 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.12.2003, 00:30 Uhr
lubU



hab grad das ganze Fenster voll geschrieben und bin auf ne idee gekommen.

wenn alle datensätze in einer datei sind,
alle datensätze aber nur 8 Zeilen haben
nämlich:
Name, geburtsdatum, Strasse, Ort, PLZ, Telefon Festnetz, mobil,
email

dann könnte ich doch immer 8 Zeilen der Datei einlesen
dannach dann strcmp() zwischen Suchstring und den
8 gescannten strings wenn der rueckgabewert von strcmp
dann immernoch nicht 0 ist mach ich bei den nächsten 8 zeilen weiter.


C++:

do
{
fscanf(datei, "%[^\n]s\n", name);
fscanf(datei, "%[^\n]s\n", geburtsd);
fscanf(datei, "%[^\n]s\n", strasse);
fscanf(datei, "%[^\n]s\n", ort);
fscanf(datei, "%[^\n]s\n", plz);
fscanf(datei, "%[^\n]s\n", festnetz);
fscanf(datei, "%[^\n]s\n", mobil);
fscanf(datei, "%[^\n]s\n", email);

rueckgabewert = strcmp(sucheingabe, name);
rueckgabewert = strcmp(sucheingabe, geburtsd);// usw...
}
while ( rueckgabewert != 0 );



so in der art hab ich mir das vorgestellt.
wie kann ich angeben das er bei endoffile aufhören soll ?
weil der wiederholt ja dann immer die letzen acht zeilen,
wenn er am ende der datei angelangt ist, oder ?

gruss

Dieser Post wurde am 23.12.2003 um 00:34 Uhr von lubU editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.12.2003, 00:55 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


am besten definierst du dir ein struct oder eine klasse die einen datensatz entspricht. dann liest du immer ein struct ein und vergleichst dann bis du am ende des files angekommen bist....
--
...fleißig wie zwei Weißbrote
 
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: