P
Falls jetzt die Zeilen alle gleich lang sind
positionierst du den Filepointer auf den anfang der gewünschten Zeile
und schreibst die neuen Daten hinein. Um eine zeile zu "löschen", sollte
man sie mit einem leerinhalt überschreiben.
Um im Beispiel zu bleiben Recordlänge =24 Zeichen.
- File öffnen (fp=fopen( "file", "w+" );)
- Positionieren (fseek( fp, 24L*line, SEEK_SET);) // Zeile die ausgetauscht werden soll achtung
- austauschen
- File schließen
Beispiel:
int ExchangeData(char *file,//Filename
char *text, // Neuer Inhalt
int line) // Zeile die ausgetauscht werden soll
{
FILE *fp;
char line[80+1];
if(NULL==(fp = fopen( file, "w+" )))
{
printf( "The file %s can´t be opened\n",file );
return -1;
}
else
{
if( 0 != fseek( fp, 24L*(long int)line, SEEK_SET))
{
printf( "ERROR Fseek failed" );
return -2;
}
else
{
sprintf( line,"%24.24s",text );
fputs( line, fp );
}
fclose( fp );
}
return 0;
}