will nicht verschieben !
Also erstema frohe Ostern an alle
Ich hab folgendes Problem, wir soll so eine Art kleines Schuelerverwaltungsprogramm schreiben wo man schueler hinzufuegen kann, löschen editieren , sicherheitskopie anfertigen , klassendruchschnitt ausrechnen , schuelerdurchschnitt errechen unsw.
Habe eigentlich schon fast alles nur beim loeschen gibt es einiges Probleme das folgender Maßen aussieht !
Er kopiert zwar die Daten in die Zwischendatei aber von dort aus überschreibt er nicht die Hauptdatei was irgendwie komisch ist.
hier der code !
void schueler_loeschen( void )
{
FILE *pLoeschen;
FILE *pZwischenspeicher;
int i = 0;
int iID = 0;
fpos_t sprung;
pLoeschen = fopen(DATEINAME,"r");
if(!pLoeschen)
{
perror("Fehler beim lesen der Datei\n");
}
else
{
printf("Geben Sie ID des Schuelers ein der geloescht werden soll <");
scanf("%i",&iID);
pZwischenspeicher = fopen(ZWISCHEN,"w");
for( i = 0; i < anzahl(); i++)
{
if(i == iID-1)
{
printf("geloescht\n");
}
else
{
sprung = sizeof(schueler) * i;
fsetpos(pLoeschen,&sprung);
fread(&schueler,sizeof(schueler),1,pLoeschen);
fsetpos(pZwischenspeicher,&sprung);
fwrite(&schueler,sizeof(schueler),1,pZwischenspeicher);
printf("%s\n",schueler.sVorname);
}
}
fclose(pZwischenspeicher);
fclose(pLoeschen);
pLoeschen = fopen(DATEINAME,"w");
pZwischenspeicher = fopen(ZWISCHEN,"r");
for(i = 0; i < anzahl()-1; i++)
{
sprung = sizeof(schueler) * i;
fsetpos(pZwischenspeicher,&sprung);
fread(&schueler,sizeof(schueler),1,pZwischenspeicher);
fwrite(&schueler,sizeof(schueler),1,pLoeschen);
}
fclose(pZwischenspeicher);
fclose(pLoeschen);
}
}
in der Funktion anzahl() die ab und zu auftaucht werden nur die vorhandenen eintraege gezaehlt !
also , vielleicht findet jemand nen fehler !
Viel spass noch beim eier suchen !
Also erstema frohe Ostern an alle

Ich hab folgendes Problem, wir soll so eine Art kleines Schuelerverwaltungsprogramm schreiben wo man schueler hinzufuegen kann, löschen editieren , sicherheitskopie anfertigen , klassendruchschnitt ausrechnen , schuelerdurchschnitt errechen unsw.
Habe eigentlich schon fast alles nur beim loeschen gibt es einiges Probleme das folgender Maßen aussieht !
Er kopiert zwar die Daten in die Zwischendatei aber von dort aus überschreibt er nicht die Hauptdatei was irgendwie komisch ist.
hier der code !
void schueler_loeschen( void )
{
FILE *pLoeschen;
FILE *pZwischenspeicher;
int i = 0;
int iID = 0;
fpos_t sprung;
pLoeschen = fopen(DATEINAME,"r");
if(!pLoeschen)
{
perror("Fehler beim lesen der Datei\n");
}
else
{
printf("Geben Sie ID des Schuelers ein der geloescht werden soll <");
scanf("%i",&iID);
pZwischenspeicher = fopen(ZWISCHEN,"w");
for( i = 0; i < anzahl(); i++)
{
if(i == iID-1)
{
printf("geloescht\n");
}
else
{
sprung = sizeof(schueler) * i;
fsetpos(pLoeschen,&sprung);
fread(&schueler,sizeof(schueler),1,pLoeschen);
fsetpos(pZwischenspeicher,&sprung);
fwrite(&schueler,sizeof(schueler),1,pZwischenspeicher);
printf("%s\n",schueler.sVorname);
}
}
fclose(pZwischenspeicher);
fclose(pLoeschen);
pLoeschen = fopen(DATEINAME,"w");
pZwischenspeicher = fopen(ZWISCHEN,"r");
for(i = 0; i < anzahl()-1; i++)
{
sprung = sizeof(schueler) * i;
fsetpos(pZwischenspeicher,&sprung);
fread(&schueler,sizeof(schueler),1,pZwischenspeicher);
fwrite(&schueler,sizeof(schueler),1,pLoeschen);
}
fclose(pZwischenspeicher);
fclose(pLoeschen);
}
}
in der Funktion anzahl() die ab und zu auftaucht werden nur die vorhandenen eintraege gezaehlt !
also , vielleicht findet jemand nen fehler !
Viel spass noch beim eier suchen !
Zuletzt bearbeitet: