Der Konverter

Die Hauptaufgabe des Converters ist die Umgestaltung eines bestimmten feststehenden Eingangsformates in ein anderes. Hierzu müßen als erstes die Daten sequentiell eingelesen werden, anschließend interpretiert und nachfolgend in dem gewünschten Format aus- gegeben werden. In unserer Implementierung ist hierfür die Prozedure filter, in filter.c, verantwortlich. Nach dem Interpretieren der Eingabeparameter, wie Dateiname und den Auswahloptionen nur Kopfinformation oder Daten, wird sequentiell die Liste der Dateien geöffnet und die Prozedure filter auf diese angewendet. Das Einlesen der daten in filter erfolgt mit Hilfe der Funktion fscanf. Mit ihr werden die Daten wortweise aufgenohmen. Nach dem das erste Wort erkannt wurde, wird das Format desen mit der Funktion line_format festgestellt und als Nummer ausgegeben. Diese Nummer wird anschließend in der Funktion next_state zusammen mit der Information des aktuellen Zustandes zu einem Folgezustand weiter verarbeidet. Abschließend wird mit Hilfe der Prozedure new_format das eingelesene Wort umgewandelt und ausgegeben. Kern des Problems ist die Interpretation der Daten. Hierzu dient ein DFA. Mit der Funktion next_state wird aus einem alten Zustand, der in der Variablen flag gespeichert ist, zusammen mit der Formatangabe des aktuell gelesenen Wortes,ein neuer gebildet. Dieser neue Zustand wird anschließend genutzt, um das eingelesene Wort mittels der Prozedure new_format in das gewünschte Format umzuwandeln und anschließend durch fprintf auszugeben.

listings

converter.c


CSLIB 2000


Zurück: Persönliche Hypertexte