Ich hoffe dass man mir hier helfen kann, ich beiß mir mit meinem Kollegen hier die Zähne an unserem Programmieren-Projekt aus.
Wir haben eine kleine Datenbank programmiert, die Autos mit verschiedenen Werten aufnehmen kann (Modell, Marke, PS,...) und wollen nun eine Dateiaus- sowie eingabe realisieren.
Die Ausgabe klappt eigentlich, aber das Einlesen macht Probleme.
Da ich mich mit Programmieren nicht so gut auskenne (ist ehrlich gesagt nicht so mein Ding), weiß ich jetzt nicht genau, welchen Codeschnipsel ich hier posten soll, aber erstmal kopier ich mal den Struct hier rein:
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
|
typedef struct{ //Struktur für Daten der einzelnen Fahrzeuge anlegen
int FID;
char FMarke[20];
char FModell[20];
int FPS;
int FKilometer;
char FKateg[15];
int FWert;
char FZulassung[10];
char FKraftstoff[10];
char FFarbe[10];
}FAHRZEUGDATEN;
|
Der Code fürs Speichern sieht so aus:
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
|
void dbspeichern()
{
FILE* datei;
if ((datei = fopen("db.dat", "w")) != NULL)
{
fwrite(Fahrzeuge,sizeof(Fahrzeuge),1,datei);
fclose(datei);
}
else
printf("Die Datei kann nicht geoeffnet werden!");
}
|
Ich habe zwar auch schon einen Code für die Eingabe geschrieben, aber das Problem ist, dass der erste Datensatz an jede Position kopiert wird. Sprich: Wenn ich einen Fahrzeugbestand von 3 Autos habe, z.B. 1. Ford 2. Audi und 3. BMW, dann wird an alle drei Stellen der erste Datensatz hinkopiert, d.h. der Ford. So sieht der Code fürs einlesen aus:
|
Source code
|
1
2
3
4
5
6
7
8
9
10
|
void dbeinlesen()
{
FILE *datei;
datei = fopen("db.dat", "rb");
fread(Fahrzeuge, sizeof(Fahrzeuge),1,datei);
fclose(datei);
}
|
Ich ahne schon, dass ich komplett auf dem Holzweg bin, vielleicht kann mir ja jemand helfen :-)