Textdatei bearbeiten/Inhalt kürzen

Elli470

Grünschnabel
Hallo Leute,
Ich habe eine Textdatei vorliegen aus der ich bestimmte Zeilen löschen soll, nämlich genau die, die eine bestimmte Zahl enthalten.
Ich habe schon zuvor mit Dateien programmiert, aber diese bisher immer nur zum Lesen oder Schreiben über die Tastatur aufgerufen.
Geht es möglicherweise die Zeilen der Datei die nicht gelöscht werden müssen in eine andere Datei zu kopieren. Wie kann man Dateien am besten durchsuchen und welche Möglichkeiten gibt es Teile des Inhaltes zu löschen?
Ich hoffe ihr könnt mir ein paar Tipps geben!
 
moin


Pack die Datei am besten erstmal in ein Array, kannst auch gut ein 2 dimensionales nehmen dann kannst du bequem mit ganzen Zeilen arbeiten.

Dann kannst du anfangen zu machen was du vorhast.
Z.B. kannst din ein einem zweiten Array speichern welche Zeile gültig ist bzw. wieder in die Datei kommt und welche Zeilen ungültig sind und in die andere Datei kommen.


mfg
umbrasaxum
 
Vielen Dank für deinen Tipp!
Leider bin ich noch nicht so viel weiter gekommen. Ich habe mir das wohl zu einfach vorgestellt. Also ich verstehe nicht warum das so was komisches ausgibt.
Code:
#include <stdio.h>
#include <stdlib.h>
#define ZEILENLAENGE 80

int main(void) {
   int c, i, j;
   FILE *datei;
   char text[5][50];

   datei=fopen("test.txt", "r");
   if(datei != NULL) {
      while( (c=fgetc(datei)) != EOF)//Solange die Datei nicht zu Ende ist
         for (i = 0; i<5; i++)//Soll diese Schleife ihren Inhalt  
         {
             for (j = 0; j<10; j++)//in den zweidimensionalen Array schreiben
             {
                 if(c=='\n')//Wenn eine Zeile zu Ende ist soll die innere Schleife abbrechen
                 {
                     printf("\n");//und die äußere Schleife i um 1 erhöhen
                     break;
                 }
                 else    
                 text[i][j]=c;
             }
         }   
         for (i = 0; i<5; i++)//Soll diese Schleife ihren Inhalt  
         {
             for (j = 0; j<10; j++)//in den zweidimensionalen Array schreiben
             {
                 printf("%c",text[i][j]);
             }
             printf("\n");
         }     
         
   }
   else {
      printf("Konnte Datei nicht finden bzw. öffnen!\n");
      return EXIT_FAILURE;
   }
   system("PAUSE");
   return EXIT_SUCCESS;
}
 
Zurück