Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.20 KB | None | 0 0
  1. #include <stdio.h>              
  2. #include <math.h>
  3. #define datei_alt "datei.old"   //Dateiname der alten Datei
  4. #define neu_endung ".new"       //Dateiendung der neuen Datei
  5. #define LK 0                    //Vorgegebene Startwerte
  6. #define AKZEPTANZ 1000.0        //Vorgegebene Startwerte
  7. #define PREIS 10.0              //Vorgegebene Startwerte
  8.  
  9. struct {                        //Gegebenes struct
  10.     int a_nummer;
  11.     char interpret[40+1];
  12.     char album[40+1];
  13. } Satztyp;
  14.  
  15. struct {                        //Struct, dass hinzugefügt wird
  16.     int a_nummer;
  17.     char interpret[40+1];
  18.     char album[40+1];
  19.     int lk;
  20.     float akzeptanz;
  21.     float preis;
  22. } Neu_Satztyp;
  23.  
  24.  
  25. int main()
  26. {
  27.     FILE *fp_alt;                       //Filepointer für alte Datei festlegen
  28.     FILE *fp_neu;                       //Filepointer für neue Datei festlegen
  29.     char datei_neu[30+4];               // +4 Zeichen wegen der Endung
  30.     char dateiname_oe[30];
  31.     Satztyp satz;           //Puffervariable zum Lesen und Schreiben
  32.     Neu_Satztyp satz_neu;   //Puffervariable zum Schreiben
  33.     int i;                  //Hilfsvariable
  34.    
  35.     fp_alt = fopen (datei_alt, "r+b");  //Alte Datei öffnen
  36.    
  37.     printf("Bitte den neuen Dateinamen ohne Endung eingeben!\n");
  38.     scanf("%c",dateiname_oe);
  39.     // datei_neu = dateiname_oe + neu_endung // Andere Loesung?
  40.    
  41.    
  42.     fp_neu = fopen (datei_neu, "w+b");      //Neue Datei anlegen
  43.     fseek (fp_alt, 0, SEEK_SET);            //Lesepositionen auf Anfang setzen
  44.     fseek (fp_neu, 0, SEEK_SET);            //Schreibpositionen auf Anfang setzen
  45.    
  46.    
  47.     while ( !feof(fp_alt)){                     //Solange die alte Datei nicht am Ende ist...
  48.                                                 //soll Struct für Struct übertragen werden
  49.        
  50.         fread( &satz, sizeof(satz), 1, fp_alt);
  51.         satz_neu.a_nummer = satz.a_nummer;
  52.         satz_neu.interpret = satz.interpret;
  53.         satz_neu.album = satz.album;
  54.         satz_neu.lk = LK;
  55.         satz_neu.akzeptanz = PREIS;
  56.         satz_neu.preis = AKZEPTANZ;
  57.         fwrite( &satz_neu, sizeof(satz_neu),1, fp_neu);
  58.     }
  59.    
  60.     fpclose(fp_neu);
  61.     fpclose(fp_alt);
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement