000
02.01.2003, 20:08 Uhr
~Gast
Gast
|
ich hab von der FH eine Aufgabe, ein Prog zu schreiben welches aus einer Binärdatei liest.
Leider liest mein Quellcode nur mist aus dieser datei und ich weiß nicht mehr weiter. wer kann mir helfen?
Hier der Link zu Datei: www.in.fh-merseburg.de/~schroet/c/Aufgabe/DAT-Daten/Vertrag.dat
und hier mal mein Quellcode:
C++: |
struct Satz {
char vertrnr[7]; char art[21]; char liiferant[19]; short vertagsmenge; unsigned short liefertermin[3]; unsigned short liefermenge;
/* char Vertragsnummer[7]; char Artikel[21]; char Lieferant[21]; unsigned short Vertragsmenge; unsigned short Liefertermin[3]; unsigned short Liefermenge; */ }bestellung[19],a;
int x,y,j,k,anzahl; char taste;
//----------------------------------------------------------------------------------------------
int datei_oeffnen() { FILE *Dateiptr; int j=0; char *eindatei= "Vertrag.dat"; anzahl=0; if (!(Dateiptr = fopen(eindatei,"r"))) { printf("Fehler beim Oeffnen der Datei %s!\n", eindatei); getch(); return(-1); } else while (fread(&a, sizeof(a),1, Dateiptr) == 1) { printf ("\n\nVertragsnummer: %s",a.vertrnr); strcpy(bestellung[j].vertrnr,a.vertrnr); printf ("\nArtikel: %s",a.art); strcpy(bestellung[j].art,a.art); printf ("\nLieferant: %s",a.liiferant); strcpy(bestellung[j].liiferant,a.liiferant); printf ("\nVertragsmenge: %i",a.vertagsmenge); bestellung[j].vertagsmenge = a.vertagsmenge; printf ("\nLiefertermin: %2d",a.liefertermin[3]); bestellung[j].liefertermin[3]=a.liefertermin[3]; printf ("\nLiefermenge: %i",a.liefermenge); bestellung[j].liefermenge = a.liefermenge; getch(); anzahl++; ++j;
} fclose(Dateiptr); return(0); }
//----------------------------------------------------------------------------------------------
/*Hauptfunktion*/ void main()
{ datei_oeffnen(); //Lesen aus der Datei Vertrag.dat
do {
clrscr(); printf("\n"); printf("\t ###################################################\n"); printf("\t # Menue #\n"); printf("\t ###################################################\n"); printf("\t # Sortiert nach Lieferanten -> 1 #\n"); printf("\t # Ende -> 0 #\n"); printf("\t ###################################################\n");
printf("\n\t\t #################\n"); printf("\t\t # Ihre Wahl:"); x=wherex(); y=wherey(); printf(" #"); printf("\n\t\t #################\n");
do //DO-SCHLEIFE// { //DO-SCHLEIFE Anfang// gotoxy(x,y); taste=getch(); } //WHILE-SCHLEIFE// while //Kontrolle Zahleneingabe// ((taste!='1') && (taste!='0'));
switch(taste) //SWITCH// { //SWITCH Anfang// case '1': clrscr(); //Funktiosaufruf bei Zahleneingabe// gotoxy(x,y); ausgabe_sort(bestellung); break; ////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
default: clrscr(); printf("\n\t ###################################################\n"); printf("\t # ENDE #\n"); printf("\t ###################################################\n"); printf("\t # Beenden mit <ECS> #\n"); printf("\t # Weiter <beliebige Taste> #\n"); printf("\t ###################################################\n");
break;
} //SWITCH Ende//
taste=getch(); } while((taste != 27)); }
|
Ich hab schon vor lauter unmut seine Struct mit den Schreibfehlern genommen aber nix klappt.
Hilfe Dieser Post wurde am 02.01.2003 um 22:24 Uhr von Uwe editiert. |