Zum Inhalt springen

MFC: INI-Datei auslesen


Empfohlene Beiträge

Hm, ebenso bräucht ich eine Funktion/Methode, irgendwas, womit ich INI-Files auslesen kann. Hab da glaub ich schon mal irgendwas gelesen, dass es da von Windows schon was gibt. Dann würde ich mir die Arbeit sparen, selber sowas zu schreiben.

Und dann müsste ich noch den Standard-Drucker einstellen. Müsste doch auch irgendwie gehen. In der MSDN find ich nicht wirklich was...

Ich glaube das ganze wäre mit purer WinAPI schon fast einfacher zu realisieren, als mit MFC, oder?

Naja, WinAPI hab ich noch nie gemacht.... Hat da vielleicht jemand kleine Beispiel Programme, und könnte mir da den Quelltext mal schicken, nur um mir mal die WinAPI anschauen zu können? Sollten aber wirklich kleine Programme sein....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von FinalFantasy

Hm, ebenso bräucht ich eine Funktion/Methode, irgendwas, womit ich INI-Files auslesen kann. Hab da glaub ich schon mal irgendwas gelesen, dass es da von Windows schon was gibt. Dann würde ich mir die Arbeit sparen, selber sowas zu schreiben.

also was brauchst Du :D

Original geschrieben von FinalFantasy

Und dann müsste ich noch den Standard-Drucker einstellen. Müsste doch auch irgendwie gehen. In der MSDN find ich nicht wirklich was...

e.. du suchst in der MSDN wie mann Standard-Drucker einstellen soll

:eek:

Original geschrieben von FinalFantasy

Ich glaube das ganze wäre mit purer WinAPI schon fast einfacher zu realisieren, als mit MFC, oder?

nie im leben

Original geschrieben von FinalFantasy

Naja, WinAPI hab ich noch nie gemacht.... Hat da vielleicht jemand kleine Beispiel Programme,

:StefanE

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Ich suche etwas, das mir das Auslesen von INI (also Kofigurationsdateien) abnimmt, sonnst muss ich das ja alles erst selber lesen und parsen und auswerten....

2. Nein, ich schau nicht in der MSDN wie man den Standarddrucker einstellt, sondern ich schau in der MSDN wie man aus einem Program heraus einen anderen Drucker zum Standarddrucker machen kann.

Wies in Windows geht weiss ich schon, ganz blöd bin ich ja auch nicht....:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von FinalFantasy

1. Ich suche etwas, das mir das Auslesen von INI (also Kofigurationsdateien) abnimmt, sonnst muss ich das ja alles erst selber lesen und parsen und auswerten....

nein muss du nicht schal dir mal in MSDN das mal an

GetCurrentDirectory()

GetPrivateProfileString()

Original geschrieben von FinalFantasy

ganz blöd bin ich ja auch nicht....:confused:

habe nie behauptet

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, gut, hast ja recht @klotzkopp, sorry

Also das ist jetzt der INI-File-Thread

Die beiden Funktionen sind genau das, was ich gesucht habe, schonmal danke.

allerdings, liefert die Funktion getprivateprofilestring() ja nur einen String zu einem Parameter.

Wenn ich aber jetzt mehrere gleichnamige Parameter mit unterschiedlichen Werten habe?

Am besten wäre, wenn ich dann alle Werte für diesem Parameter in einem Array kriege, so dass ich drüber loopen kann.

GetPrivateProfileSection() liefert mir ja die ganze Sektion und nicht nur einen mehrfachen Wert für einen gleichen Parameter... Ausserdem ist die Rückggabe über nullterminierte Strings in einem String mit doppelter Terminierung am Ende recht umständlich abzuarbeiten, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von FinalFantasy

Wenn ich aber jetzt mehrere gleichnamige Parameter mit unterschiedlichen Werten habe?

Dann hast du streng genommen keine INI-Datei mehr, denn das Dateiformat schreibt AFAIK vor, dass die Feldnamen innerhalb eines Schlüssels eindeutig sind.

Damit werden die API-Funktionen wahrscheinlich nicht zurechtkommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die MFC beinhalten keine XML-Funktionalität. Von Microsoft gibt es MSXML, mit einer ausführlichen SDK-Beschreibung in der MSDN-Library.

Dann gibt es auch noch Xerxes, und die boost-Library kann IIRC auch mit XML umgehen. Ich habe aber beide noch nicht verwendet.

Gib einfach mal "XML Parser" in die Suchmaschine deiner Wahl ein, da findest du ziemlich viel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ohmei, ich merks schon wieder. Das sollte eigentlich nur ein relativ kleines Programm sein, dass eine Inifile ausliest, und je nach Inhalt der INI-Datei ein paar Buttons darstellt und mit unterschiedlichen Funktionen belegt...

Das ist schon wieder so ein Overhead, für den kleinen Zweck. Ich glaub wenn ichs mir selber schreibe, bin ich fast schneller als wenn ich mir was passendes suche, dass dann entsprechende Anforderungen erfüllt....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nun , gleiche Schlüssel mit unterschiedlichen Datentypen ist nicht schnell entwickelt.

Als erstes musst Du rausbekommen welchen Datentyp Du hast, alle Werte die so heissen einlesen, parsen und prüfen ob der Datentyp passt und den zurückgeben.

Aber holla, wie unterscheidet man da nun int und long ?

(Du kannst Dir mit templates und stringstream was bauen was jeden Datentyp wandeln kann... Aber das ein schlüssel mehrfach vorkomt löst es auch nich)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich meine nicht unterschiedliche Datentype, sondern unterschiedliche Werte für einen Parameter.

Beispiel für die InI-Datei:

[section]

param=bla

param=bla2

param=bla3

Du siehst, den Parameter param gibt es dreimal mit jeweils drei unterschiedlichen Werten. Der Typ wäre jedes mal ein chararray, oder std::string oder sowas.

Aber wie weiter oben schon geschrieben wurde, is dass nicht Standard für INI-Files, und wird dementsprechend nicht funktionieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, ich habs jetzt doch mit diesen Funktionen und INI Files gelöst. Ich mach das jetzt so:

[section]

param1=bla

param2=blabla

param3=letzter

Mach dann eine Schleife mit Zähler, baue den Key mit param+Zähler der Schleife, und mache den Loop so lange, bis GetPrivateProfileString als Ergebniss 0 liefert, also quasi bei param4 dann, weil das ja nichtmehr existiert.

So geht das eigentlich ganz gut.

CStringArray hab ich noch nicht gekannt, hab mir eine kleine Methode geschrieben, die dann dass CharArray entsprechend zerlegt und in ein CStringArray packt.

Danke für eure Hilfe. :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...