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