Beispiel-Code Datei schreiben und Lesen



  • Hallo,
    Vieleicht kann mir hier jem. weiterhelfen.
    Ich möchte in C aus Datei a und b lesen, den Inhalt von Datei a und b getrennt durch ein trennzeichen in datei c schreiben.
    Kann mir jem. ein Beispiel-Code posten?

    Danke, Danke

    Michi





  • Naja leider hilft mir das ned weiter..

    Mein Code:

    /*putc.c*/
    #include <stdio.h>
    #include <stdlib.h> //exit
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
     FILE *quelle, *quelle2, *ziel;
     int c;
     quelle=fopen(argv[1],"rb");
     quelle2=fopen(argv[2],"rb");
     if(quelle==NULL)
      {
       printf("Konnte Quelldatei nicht finden bzw. öffnen!\n");
       exit(0);
      }
     else
      {
       ziel=fopen(argv[3],"w+b");
         if(ziel==NULL)
         {
           printf("Konnte Zieldatei nicht erzeugen!\n");
           exit(0);
          }
         else
          {
            while((c=getc(quelle)) != EOF)
            {
                     putc(c,ziel);
            }
    //Hier brauche ich noch ein Trennzeichen
            while((c=getc(quelle2)) != EOF)
            {
                    putc(c,ziel);
            }
           }
      }  
    
     return 0;
    }
    

    Beim Trennzeichen, habe ich Probleme und beim Rückgängig machen, d.h. Aus einer Datei durch das Trennzeichen wieder zwei machen.

    Danke jetzt schon
    bin am verzweifeln.. 😞

    Michi



  • fprintf(ziel, "#");
    

    Also das wäre dann z.B. die Zeile, die du da einfügen müsstest wo du dein Trennzeichen schreiben willst...



  • Also komplett sieht dein Programm bei mir jetzt so aus und es funktioniert auch...Ok?
    😃

    /*putc.c*/ 
    #include <stdio.h> 
    #include <stdlib.h> //exit 
    #include <string.h> 
    
    int main(int argc, char *argv[]) 
    { 
     FILE *quelle, *quelle2, *ziel, *ziel2;
     int c; 
     quelle=fopen(argv[1],"rb"); 
     quelle2=fopen(argv[2],"rb"); 
     if(quelle==NULL) 
      { 
       printf("Konnte Quelldatei nicht finden bzw. öffnen!\n"); 
       exit(0); 
      } 
     else 
      { 
       ziel=fopen(argv[3],"w+b"); 
         if(ziel==NULL) 
         { 
           printf("Konnte Zieldatei nicht erzeugen!\n"); 
           exit(0); 
          } 
         else 
          { 
            while((c=getc(quelle)) != EOF) 
            { 
                     putc(c,ziel); 
            } 
    //Hier brauche ich noch ein Trennzeichen 
    
           fprintf(ziel, "#");
    
            while((c=getc(quelle2)) != EOF) 
            { 
                    putc(c,ziel); 
            } 
           } 
      }
    
      fclose(quelle);
      fclose(quelle2);
      fclose(ziel);
    
      quelle=fopen(argv[3],"rb");
      ziel=fopen(argv[4],"w+b");
      ziel2=fopen(argv[5],"w+b");
    
      while((c=getc(quelle)) != 35)  //Die 35 ist der Dezimalwert für das Trennzeichen #
      {
        putc(c,ziel);
      }
    
      while( (c=getc(quelle)) != EOF )
      {
        putc(c,ziel2);
      }
    
      fclose(quelle);
      fclose(ziel2);
      fclose(ziel);
    
     return 0; 
    }
    


  • @Maquis
    Und wenn du anstatt 35 einfach '#' schreibst?? 😉

    @nob
    Und was machst du, wenn dein Trennzeichen in der 1. Datei bereits vorkommt beim wiederaufsplitten??



  • @AJ: Oder so. Manchmal sieht man den Wald vor lauter Bäumen nicht 😉



  • Soweit so gut danke vielmals für eure Mühe, es funktioniert. Wegen dem Trennzeichen ich merke mir nun die Position an der die 2 Datei beginnt + Trennzeichen 😉


Anmelden zum Antworten