FinalFantasy Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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.... Zitieren
bigpoint Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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 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 Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 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: Zitieren
bigpoint Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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 Zitieren
Klotzkopp Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 @FinalFantasy: Bitte beim nächten Mal beachten: Ein Thread - ein Thema, ein Thema - ein Thread. Wenn du drei unterschiedliche Fragen in einem Thread stellst, erschwerst du Anderen, Lösungen über die Suchfunktion zu finden. Ich werde den Thread aufteilen und die Betreffs anpassen Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 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? Zitieren
Klotzkopp Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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. Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 Achso, hm, dass ist dumm. Und gibts ein anderes Format, dass das kann? Ich bräuchte das nämlich unbedingt.... Hm, wenn nicht, muss ich mir wohl doch selber was proggen... Aber afaik ist das doch in Configfiles unter Linux auch möglich.. Vielleicht gibts da was portables? Zitieren
Klotzkopp Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 Wie wär's mit XML? Das Dateiformat ist portabel, und Parserbibliotheken gibt's auch wie Sand am Meer Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 An XML hab ich jetzt gar nicht mehr gedacht... Wär ne Möglichkeit. Hab mich aber noch nie mit XML befasst. Gibts da auch bereits integrierte Funktionen in C/MFC oder so? Zitieren
Klotzkopp Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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. Zitieren
bigpoint Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 vieleich das ganze in CStringArray speichern ? Zitieren
bigpoint Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 Der MSXML erfordert aber eine COM und die hat nicht jeder installiert Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 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.... Zitieren
Knuddlbaer Geschrieben 14. Januar 2004 Geschrieben 14. Januar 2004 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) Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 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. Zitieren
FinalFantasy Geschrieben 14. Januar 2004 Autor Geschrieben 14. Januar 2004 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. Zitieren
Empfohlene Beiträge
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.