Forum: PC-Programmierung INI datei


von Olliver (Gast)


Lesenswert?

Hi.
ich habe eine ini datei die folgedermassen aussieht.
wie werde ich das am besten aus ?

[Devices]
Device1=SIEMENSS65
Device2=SIEMENSS55
Device3=SIEMENSC55
Device4=SIEMENSYYY
Device5=SIEMENSXXX
...

sollte ich eine Liste von allen einträgen von Devices nehmen und nur
die einträge mit Device + Zahl rausfiltern oder sollte ich besser alle
zahlen durchmachen, bin keine werte mehr kommen ?

Wie wird das normal gemacht ?

MfG

von Marc Braun (Gast)


Lesenswert?

Da Windows bei jedem Zugriff über die Funktionen GetPrivateProfile...
die INI-Datei parst, empfehle ich Dir die erste Methode.

Hierfür gibt es schöne Funktionen im Windows API:

GetPrivateProfileSection( ... )

von JojoS (Gast)


Lesenswert?

wenn du die Ini-Datei selbst im Griff hast: ich würde als Alternative
die Konfigdaten in eine xml Datei schreiben. Der wesentliche Vorteil
ist das du die strukturierter und hierarchisch ablegen kannst. Es gibt
fertige API's um xml zu Lesen und zu Schreiben. Auch Funktionen zum
Auflisten und Suchen sind da schon drin.
Wenn du unter Windows arbeitest: es ein XML-Notepad, damit kann man die
Struktur seiner Daten sehr einfach modellieren, findest du z.B. hier:
http://www.snapfiles.com/get/xmlnotepad.html
Um mit der API klarzukommen einfach ein XMLDoc Objekt erzeugen, ein xml
file laden und im Debugger die Nodes aufklappen, dann kommt recht
schnell damit klar. Schnickschnack wie Styles und Schemas brauchst du
dafür nicht.

von Rufus T. Firefly (Gast)


Lesenswert?

Sind die ersten beiden Parameter von GetPrivateProfileString NULL, so
liefert die Funktion eine Liste nullterminierter Strings, die die
[Abschnitte] der Ini-Datei aufzählen.

Ist nur der zweite Parameter NULL, so wird eine Liste nullterminierter
Strings geliefert, die die Namen aller Parameter in einem Abschnitt
enthält.

Im Beispiel von Olliver wäre der erste Parameter also "Devices", und
die Liste bestünde aus "Device1\x00Device2\x00Device3\x00 ...
\x00\x00".

So muss man nur noch die Liste iterieren und fertig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.