P
Durch die Struktur der Platinenlayoutdatei, ist es relativ einfach die entsprechende Zeile zu entfernen
Als Compiler habe ich MS ViaualStudio C/c++ 6.0 benutzt. Mit deiner TestDatei funktionierts
Falls du einen anderen Compiler benutzt kann es sein das du anstelle von "_strnicmp" eine andere Funktion benutzen musst.
Aber jeder Compiler hat in seiner Library eine ähnliche Funktion mit eine leicht anderen Namen.
Die Funktion vergleicht 2 Strings ohne Rücksicht auf Groß und Klein Schreibung und auch nur die ersten n Zeichen.
#include <stdio.h>
#include <string.h>
int main (int argc, char *argv[ ])
{
FILE *InFile;
FILE *OutFile;
char line[156+1];// das +1 ist eine Marotte von mir um den üblichen Fehler zu
// vermeiden das für die schließende Null kein Platz mehr da ist.
if (3 != argc) // argc enthält die Anzahl der Argumente argv[0] ist der programmname dehalb 3
{
// Fehlerhandling für Datei nicht gefunden / nicht öffenbar)
printf("\n\nAnzahl Parameter incorrect\n Usage: progname infilename outfile\n");
return(1);
}
InFile=fopen(argv[1],"r");
if (0==InFile)
{
// Fehlerhandling für Datei nicht gefunden / nicht öffenbar)
printf("\n\nInput Datei nicht gefunden\n Usage: progname infilename outfile\n");
return(2);
}
OutFile=fopen(argv[2],"w");
if (0==OutFile)
{
// Fehlerhandling für Datei nicht gefunden / nicht öffenbar)
printf("\n\nkann Outputdatei nicht öffnen\n Usage: progname infilename outfile\n");
return(3);
}
while (NULL!=fgets(line,128,InFile)) // lese Datei bis zum Ende
{
if (0==_strnicmp("ENTITIES",line,8)) // Prüfe ohne case insensitiv die ersten 8 Zeichen ob sie "ENTITIES" heißen
continue; // Falls ja tu nichts (skip line)
else
fprintf(OutFile,line); // Anderfalls schreibe Input in Outputdatei
};
fclose(InFile);
fclose(OutFile);
return 0;
}
Da es nicht nach einer Hausaufgabe aussah, habe ich den ganzen Code gepostet.