Seite 1 von 1

C: ini File schreiben unter Linux.

Verfasst: Mo Sep 06, 2010 6:59 am
von naums
Ich will wieder mal an meinem INIMaker rumbasteln, diesmal soll das Ding auch auf Linux laufen, erstmal ohne Oberfläche, sondern es soll über Parameter steuerbar sein. Fürs erste jedenfalls. Zum Problem: Ich will ja mit meinem INIMaker eine .ini Datei erstellen, füllen, und auch wieder Daten löschen können. Eine ini Datei ist ja ungefähr so aufgebaut:

Code: Alles auswählen

[INIMAKER]
width=255
height=233
titel=INIMAKER

[Datensatz1]
attr1=wert1
attr2=wert2 
ich denke das Prinzip ist klar. Also habe ich mir als erstes gedacht, wie eine INIErkennung unter PHP laufen könnte. Ich bevorzuge den explode() befehl. also $teilstring=explode ("[", $komplettstring); header=explode ("]", $teilstring[1]); Jetzt müsste noch unterschieden werden. Da ja das erste Zeichen immer ein [ ist und somit $teilstring[1] im Beispiel folgenden Text hätte:

Code: Alles auswählen

width=255
height=233
titel=INIMAKER
müsste man unterscheiden ob es sich um eine Überschrift, oder um die Wertzuweisungen handelt. Letzteres muss wieder geteilt werden in Attribut und Attributwert, durch das "=" geteilt. Gibt es einen ähnlichen BEfehl wie explode in C? (C++)

Zum Schreiben einer INI fällt mir nur folgendes ein: Man muss die richtige Überschrift finden, wo der Wert reinmuss, man muss das richtige Attribut finden, oder ggf beides anlegen, und man muss den Wert schreiben. Überschrift: [header] Zeile: attribut=attributwert. Jedoch muss ich da auch unterscheiden ob schon zeilen unter einer Überschrift stehen, oder nicht. Sinnvoll wäre es sicher auch, einen Zeilensprung nach der letzten Zeile unter einer Überschrift zu machen, und eine zeile freizulassen, bevor die nächste Überschrift geschrieben wird. Die Erkennung kann genauso ablaufen, wie die oben genannte. Allderings muss ich noch einen Weg finden die richtigen Überschriften zu finden und ebenso diese notfalls anzulegen.

Re: C: ini File schreiben unter Linux.

Verfasst: Mo Sep 06, 2010 2:11 pm
von cloidnerux
Gibt es einen ähnlichen BEfehl wie explode in C? (C++)
Ja, aber demnächst, wie schon häufiger erwähnt, erst denken, dann googlen, dann fragen:
http://www.java2s.com/Code/C/String/String-Split.htm
Ich will wieder mal an meinem INIMaker rumbasteln, diesmal soll das Ding auch auf Linux laufen, erstmal ohne Oberfläche, sondern es soll über Parameter steuerbar sein
Wenn du dein INI-Maker unter Windows mit C programmiert hast, dann sollte es kein Problem sein, ihn nach Linux zu Portieren. Die C-Standard-Bibliothek steht auch unter Linux zur Verfügung, also musst du nicht viel an deinem Code ändern, vorausgesetzt du nutzt nicht die WinAPI.

Re: C: ini File schreiben unter Linux.

Verfasst: Mo Sep 06, 2010 6:03 pm
von naums
erstmal danke für den tipp, hab ich schon gemacht, bin dann auf strtok gestoßen und da is mir aufgefallen, dass ich keine Ahnung hab was der Befehl macht :D

Edit: grade bemerkt, da steht ja auch was bei Proggen.org :D http://proggen.org/doku.php?id=c:lib:st ... s[]=strtok

das Programm basiert auf der WinAPI , und die Version 2.0 schreibe ich komplett neu. Diesmal soll das Ding einmal parameter übergeben lassen, was das durch die Menüs wühlen sinnlos macht, und dann soll das ding mit dem Parameter -gui ne art "GUI Start" machen, aber eben in der Konsole und keine richtige Gui xD und ausßerdem fehlt wohl die Windows.h --> zum einfachen INIschreiben unter Windows. Genau den Befehl werde ich aber unter Windows wieder benutzen, unter Linux muss ich mir selbst sowas schreiben und in ne andre File auslagern :D