Zeilen in Datei begrenzen

Puka

Grünschnabel
Hallo.
Ich arbeite noch nicht so lange mit C und stehe jetzt vor dem Problem Dateiverarbeitung.
Das Problem besteht darin, dass ich immer wieder einen string in ein und die selbe Datei schreibe.
Dabei hat der string die Struktur "bla\tbla\tbla\tbla\n"
Jetzt suche ich nach einer Möglichkeit, dass maximal 100 Einträge/Zeilen in diese Datei geschrieben werden und wenn 100 Einträge erreicht sein sollten, der unaktuellste am Ende der Datei gelöscht wird und am Dateianfang der aktuellste ganz normal hinzugefügt wird.
Kann mir jemand bei meinem Problem helfen? Der Quellcode dafür wäre, wenn möglich, sehr hilfreich.
Danke

Puka
 
Ojemine!
Du musst die \n zählen z.B. mit
C:
unsigned CountNewlines(char* string)
{
 int i, r=0;
 for(i=0;i<strlen(string);i++)
  if(string[i] == '\n')
   r++;
 return r;
}
Am besten du liest die Datei in einen Puffer (mit Begrenzung) und schreibst den dann in die Datei:
C:
char con[4096]; // Dateilänge
char buf[256]; // Zeilenlänge
int i;
FILE* f = fopen("/wo/ist/die/datei","r");
for(i=0;i<100;i++)
{
 if(!fgets(buf,256,f)) break; // fgets liefert NULL beim Dateiende
 strncat(con,buf,4095); // Der dritte Parameter ist die Größe von Con MINUS EINS (!)
}
fclose(f);
FILE * f = fopen("/wo/ist/die/datei","w");
fputs(con,f);
fclose(f);
Übrigens: Das 1. und 2. Beispiel haben NICHTS mit einander zutun.
Such dir aus was du verwenden willst
 
Zurück