Configfile & Parser in C

marcellus

marcellus

Kaiser
Hallo,
ich würde gerne ein Configfile und einen Parser dazu in ein Programm einbauen. Allerdings bin ich schon sehr früh draufgekommen, das das ganze fscanf Formatierungsdumdum nur sehr bedingt funktioniert hab ich schnell rausgefunden.

Ich hab bisschen recherchiert und hab bis jezt confuse und die glib key parse api gefunden und confuse.

Die Links dazu:
http://library.gnome.org/devel/glib/stable/glib-Key-value-file-parser.html
http://www.nongnu.org/confuse/

Was ich jetzt wissen wollte ist ob Ihr vielleicht schon Erfahrungen damit gesammelt habt und mir vielleicht noch was anderes Empfehlen könnt, mit dem Ihr schon gute Erfahrungen gemacht habt.
 
Beide libs schauen eigentlich ganz ok aus. Ich würd mal sagen es ist geschmackssache welche du verwendest.
Ich persönlich würde auf die glib setzten, da sich bei der confuse schon länger nichts getan hat. Ausserdem ist meiner Meinung nach alleine durch das gnome-Projekt die glib weiterverbreitet und man kann davon ausgehn, dass sie somit besser getestet ist.

wenn du ein beispiel brauchst wie man die glib key-value verwendet, dann google mal.
wirst auch ziemlich schnell auf diese seite stoßen: http://www.gtkbook.com/tutorial.php?page=keyfile

Viel Spaß noch dabmit ;-)
 
Ok der glib parser scheint sehr cool zu sein. Ich hatte allerdings gehofft, dass es noch eine andere standartisierte methode gibt, das ich mehr alternativen hab, die ich mir anschauen kann.

Also der thread ist damit erledigt, wenn jemand noch Vorschläge hat bin ich sehr dankbar.
 
Soda ich grab diesen hier mal wieder aus.

Ich hab ein ziemlich ähnliches Problem wie damals, nur komm ich mit den libs oben nicht mehr klar. Ich will fig files in C parsen können und das ganze möglichst Portabel. Ich hab mir jetzt bison (+flex) und libpcre angeschaut.

Bevor ich weiter mit den libs herumspiel hab ich ein paar Fragen.

1) Bison

Ich hab mir das bison manual durchgeschaut aber schaffs nicht da fixe pattern reinzubringen. Allerdings sollte das wenn ichs richtig verstanden habe ja alles funktionieren.

Im Manual steht wegen regex steht recht wenig, oder sollte ich mir nur eine andere Dokumentation suchen? Anders gesagt, kann man mehr als:

Code:
ausdruck:
           | NUM      { was mit NUM gemacht werden soll; }
           | andererausdruck
            ...
           ;

2) Flex

Flex kann wie ich das gesehen habe fast das gleiche wie Bison, nur das man die pattern nicht ineinander Verschachteln kann, wobei da in der doku mehr zu regex drinnen steht, aber ich brauch auch eine art Schleife und weiß nicht so recht wie ich das reinbekomm.

3) Pcre

Mit pcre hauts so halbwegs hin, wobei ich teilweise recht böse Fehler drinnen hab aus mir unerklärlichen Gründen, abgesehen davon hat mein Bruder gemeint, dass man files nicht mit pcre parst, sondern mit bison + flex.


Um das ganze vllt noch etwas veranschaulichen zu können ein kleiner Auszug von einem fig file:

Code:
#FIG 3.2  Produced by xfig version 3.2.5
Landscape
Center
Inches
Letter
100.00
Single
-2
#some comment
2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
         3300 2250 4050 2625
...

Wie würdet ihr das Parsen von dieser Datei möglichst Portabel machen? Nebenbei hätte ich das ganze auch noch gern bidirektionan.

Tia
 
Zurück
Oben