Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » File auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
05.09.2003, 11:16 Uhr
0xdeadbeef
Gott
(Operator)


http://libconfig.sourceforge.net/ - zum zweiten mal. Das ist ne C++-Klasse.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
05.09.2003, 14:51 Uhr
~aitee
Gast


Aha ... und was soll ich damit?

1. Das ganze drumherum mit Unix ist ziemlich verwirrend, auch wenn ich mittlerweile schon ab und an mal auf Unix gearbeitet habe.

2. Das Teil ist riiiesig. Ich steig weder durch, was die Klasse macht, noch was das alles für Methoden sind.

3. Ich wollte eigentlich nur so etwas wissen, wie das C Beispiel

a) wie öffne ich ein Ini File? stream oder so?
b) wie lese ich die Inhalte ein?

Dazu muss ich doch nicht so ein riesen Beiwerk haben ... darf ich das überhaupt benutzen im Bezug auf Lizensrechte? Ist ja nicht für den privat gebrauch.

greetz aitee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
05.09.2003, 16:01 Uhr
virtual
Sexiest Bit alive
(Operator)


Zunächst solltest Du Dir überlegen, wie Du die Struktur eines INI Files eigentlich abbilden willst. Ich denke, du solltest Dir zu diesem Zweck mal std::map und std::string anschauen, zwei Templates aus der STL.
Eine einfache map, die Strings auf Values mapped, sieht zB so aus:

C++:
std::map<std::string, std::string> mapSettings;

mapSettings["key"] = "value"; // Wert setzen
std::string value = mapSettings["key"]; //Wert lesen


(Der geneigte Leser verzeihe bitte das inperformante, aber dafür leserliche Beispiel).
Natürlich mußt Du bedenken, daß ein INI File aus ganz vielen solchen Maps besteht; genauer gesagt aus einer Map von maps. Normalerweise wird man mindestens aus der map, die die anderen enthält, eine eigene Klasse machen. Ich würde sogar dazu tendieren, auch aus obiger Map eine eigene Klasse zu machen.
Wenn Du die Struktur weist, die du verwenden willst, kannst Du dir mal std::fstream anschauen, damit kann man mit Dateien arbeiten.

C++:
std::ifstream eingabe("Dateiname"); // Erstelle unf öffne Input datei
std::string line;
std::getline(eingabe, line); // Lese ganze Zeile aus Datei
....


bzw.

C++:
std::ofstream ausgabe("Dateiname"); // Erstelle unf öffne Ausgabe datei
std::string line  ="Ich bin zwei Öltanks";
ausgabe<<line<<std::endl;
....


Meistens wird man das alles in einer Schleife abfackeln und wissen wollen, ob zB die Eingabe funktioniert hat, oder das Streamende erreicht ist:

C++:
if (!eingabe) { /* Irgendwas ist krumm */ }
if (eingabe.eof()) { /* Dateiende erreicht */ }


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 05.09.2003 um 16:02 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
08.09.2003, 09:40 Uhr
~aitee
Gast


Wow ... sehr gute Erklärung *daumenhoch*

Ich will zwar nur ne Ini File auslesen und nicht erstellen, aber das hilft auf jeden Fall und ich denke ich sollte es jetzt schaffen

Struktur ist btw.:

[Section]
Wert=Value
[Section]
Wert=...

Greetz n' thx aitee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
08.09.2003, 09:58 Uhr
RHBaum



Als erstes solltest DIr nen Kopf machen, wie dein "Ini-File" aufbauen willst ...

Wobei wir schon wieder bei ner unzulaessigen Namenskonvention waeren ... Irgendwie hat sich eingebuergert, als "Ini-File" die M$ Syntax fuer ihre Applications-Config-FIles zu verwenden. Aber bei dieser Version hast die Vorteile, Windows Funktionen nutzen zu koennen, anstatt selber dein file zu parsen und zu schreiben !
Mittlerweile nutzen auch schon einige Unix-Applicationen, weils halt doch uebersichtlich ist.

Der modernere Weg ist zweifelsohne XML ... aber mit viel aufwand verbunden.

Ist dir die Syntax eigentlich egal, und DU willst nur schnell ne Implementation finden -> schau doch mal auf CodeGuru

Ciao ...


Bearbeitung von loddab:
URL-Tag verbessert

Dieser Post wurde am 08.09.2003 um 10:02 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: