Psycho~zicke Geschrieben 27. Januar 2008 Geschrieben 27. Januar 2008 Hallöchen Leute... Ich hab mal wieder ein Problem und hoffe das ihr mir ein wenig weiter helfen könnt... Also ich soll ein Programm schreiben das eine vorhandene Datei öffnet und diese dann in einer anderen Datei die man in dem Programm erzeugt abspeichert... Das ganze soll Zeilenweise passieren. Diesen Teil des Programms hab ich auch bestens hin bekommen. Was mir absolute probleme macht ist das die Kommentare beim auslesen der vorhanden Datei gelöscht werden sollen und dann die Datei Speichern der neuen Datei... Das schwierige für mich is halt auch das er jede art von kommentaren finden soll... welche die mit // beginnen und somit nur eine Zeile lang sind, aber auch /*kommentar*/ diese art die sich über mehrere Zeilen ziehen kann... ich schreib euch ma den quellcode und evt kann mir ja jemand weiter helfen... Bin für jede hilfe dankbar... /******************************************************* * Created from : Sabrina Werner * Created at : 23.01.2008 * Updated at : 24.01.2008 * * Description : Kapitel 1, Aufgabe von Stephan * *Schreiben Sie ein Programm, das C- Programmen kopiert und unter *einem anderen namen speichert. Es soll im anschluss die kommentare entfernen. * ********************************************************/ #include <stdio.h> int main (void) { /* Deklaration FILE-Zeiger */ FILE *fQuelle; FILE *fZiel; /* Deklaration der Variablen */ int iZaehler; char sZeile[80]; char sAusgabe[80]; int iPos; int iAusgabenZaehler; /* Zuordnung der Werte */ iZaehler = 0; iPos = 0; iAusgabenZaehler = 0; /* öffnen der Datei */ fQuelle = fopen("C:\\Kernig~1\\Lookup\\test.c", "r"); fZiel = fopen("C:\\Kernig~1\\Lookup\\Ziel.c", "w"); /* Überprüfung ob die Datei geöffnet werden kann */ if (fQuelle == NULL) { printf("Fehler beim Oeffnen der Datei C:\\Kernig~1\\Lookup\\test.c\n"); } else { printf("Datei erfolgreich geoeffnet.\n"); } /* Überprüfung ob die neue Datei erstellt werden konnte */ if (fZiel == NULL) { printf ("Fehler beim Oeffnen der Datei C:\\Kernig~1\\Lookup\\Ziel.c\n"); } else { printf ("Datei erfolgreich geoeffnet\n"); } /* Durchlaufen der Schleife bis die Datei zu ende ist. Übergabe der Daten aus fQuelle nach fZeile... */ while(fgets(sZeile, 80, fQuelle) != NULL) { /* Finden der Kommentare */ while (sZeile[iZaehler] != '\n') { if (sZeile[iZaehler] == '/' || sZeile[iZaehler] == '*') { ++iZaehler; if (sZeile[iZaehler] == '*' || sZeile[iZaehler] == '/') { iPos = iZaehler -1; } } /* Weg lassen de Kommentare */ if (sZeile[iZaehler] != '/' || sZeile[iZaehler] != '*') { sAusgabe[iAusgabenZaehler] = sZeile[iZaehler]; ++iAusgabenZaehler; ++iZaehler; } } /* Ausgabe der Zeichenkette in der gewünschten Datei */ fputs (sZeile, fZiel); iZaehler = 0; } /* Schließung der Dateien */ fclose(fQuelle); fclose (fZiel); return 0; } Zitieren
marcom Geschrieben 27. Januar 2008 Geschrieben 27. Januar 2008 RegEx Bibliothek (z.B. Regular Expression Library Table of Contents) einbinden und benutzen. Erleichtert deine Aufgabe ungemein. Beispiele, wie man Kommentare im C Syntax entfernt, gibt es wie Sand am Meer. Viel Erfolg! Zitieren
baba007 Geschrieben 28. Januar 2008 Geschrieben 28. Januar 2008 RegEx von ***** und /*.....*/ ersetzen durch "" Zitieren
Psycho~zicke Geschrieben 29. Januar 2008 Autor Geschrieben 29. Januar 2008 das problem daran is nur das ich nur die funktionen nehmen darf die ich schon kenne... bin im ersten kapitel von Programmieren in C... also arg viele kenn ich noch nicht... Soll das mit while und if usw machen... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.