Hallo,
ich habe da mal ein Problem:
und zwar will ich mit folgendem Programm die Datei mit dem Inhalt:
name titel verlagsname erscheinungsjahr
Überschrift steht nicht in der Datei.
einlesen und bearbeiten. Um das Programm übersichtlicher zu bekommen sollen zwei Strukturen verwendet werden.
Nun habe ich erstmal die ganze Datei in ein char-Feld eingelesen und ausgegeben, das funktioniert auch.
Wie bekomme ich aber die Datensätze in die Strukturen? Ich muss ja erst die ganze Datei durchlaufen, um die Anzahl der Datensätze zu ermitteln. Die Länge der Datensätze ist fest definiert.
In der Struktur Buch soll jeweils der Datensatz aus der Datei gespeichert werden und der Index wird pro Datensatz um 1 erhöht.
Der Ordnungsbegriff sollte dann aus dem Datensatz eindeutig gebildet werden.
Danke für die Hilfe
Alles anzeigen
ich habe da mal ein Problem:
und zwar will ich mit folgendem Programm die Datei mit dem Inhalt:
name titel verlagsname erscheinungsjahr
Überschrift steht nicht in der Datei.
Quellcode
- J.K. Rowling Harry Potter and the Deathly Hallows Bloomsbury 2007
- Bernd Stromberg Langenscheidt Chef-Deutsch/Deutsch-Chef Langenscheidt 2007
- Nicola Sautter Besser Essen, Leben leicht gemacht Zabert Sandmann 2007
- Joanne K. Rowling Harry Potter Band 7, deutsche Ausgabe Carlsen 2007
- Hape Kerkeling Ich bin dann mal weg. Meine Reise... Malik 2006
- Sebastian Fitzek Amokspiel Droemer/Knaur 2007
- Kerstin Gier Fuer jede Loesung ein Problem Luebbe 2007
- Deborah Crombie So will ich schweigen Goldmann 2007
einlesen und bearbeiten. Um das Programm übersichtlicher zu bekommen sollen zwei Strukturen verwendet werden.
Nun habe ich erstmal die ganze Datei in ein char-Feld eingelesen und ausgegeben, das funktioniert auch.
Wie bekomme ich aber die Datensätze in die Strukturen? Ich muss ja erst die ganze Datei durchlaufen, um die Anzahl der Datensätze zu ermitteln. Die Länge der Datensätze ist fest definiert.
In der Struktur Buch soll jeweils der Datensatz aus der Datei gespeichert werden und der Index wird pro Datensatz um 1 erhöht.
Der Ordnungsbegriff sollte dann aus dem Datensatz eindeutig gebildet werden.
Danke für die Hilfe
Quellcode
- #include <stdio.h>
- #include <errno.h>
- #include <stdlib.h>
- struct Buch
- {
- char name[21];
- char titel[41];
- char verlagsname[21];
- int erscheinungsjahr;
- };
- struct Index
- {
- char ordnungsbegriff[21];
- int position;
- };
- int main(int argc, char *argv[])
- {
- int result=0;
- int alert=0;
- int j, datensatz;
- unsigned int i;
- unsigned char zeile[1024], pix;
- FILE *datei;
- char *datei_file_name = "datei.dat";
- datei = fopen( datei_file_name, "r" );
- if ( datei == NULL )
- {
- fprintf ( stderr, "\nDatei konnte nicht geoeffnet werden '%s';\n",
- datei_file_name);
- exit (1);
- }
- printf("\nDatei wurde geoeffnet!\n");
- j=datensatz=0;
- for(i=0;i<sizeof(zeile);i++)
- {
- result=fscanf(datei,"%c", &pix);
- if(result == EOF || result != 1) //Fehlerbehandlung, ob Zeichen zum Einlesen vorhanden sind
- {
- alert=1;
- break;
- }
- else
- {
- zeile[i]=pix; //Abspeichern im neuen Feld
- j++;
- if(pix=='\n')
- datensatz++;
- alert=0;
- }
- }
- printf("\nEs wurden %d Datensaetze eingelesen.\n", datensatz);
- for(i=0;i<j;i++)
- {
- printf("%c", zeile[i]);
- }
- if( fclose(datei) == EOF )
- {
- fprintf ( stderr, "\nDatei konnte nicht geschlossen werden '%s';\n",
- datei_file_name);
- exit (1);
- }
- fflush(stdin);
- getchar();
- return 0;
- }
[Blockierte Grafik: http://www.danasoft.com/sig/PC-Exorzist.jpg]