Frage

Im Grunde möchte ich verschiedene Variablen von der Festplatte Datenträger für die Verwendung im Programm meines Programm abrufen haben. Ich denke, bevor Einzelheiten zu fragen, sollte ich prüfen, ob überhaupt möglich ist. Ist es das?

Wenn ja, was ist der beste Weg? Ich habe die Verwendung von INI-Dateien zu sehen, aber ich weiß nicht, wie man Daten abrufen speziell von INI-Dateien. Ist es das gleiche wie eine Textdatei, die Sie mit der Nase haben, um sicherzustellen, dass Variablen machen immer auf x Linie sein? Zum Beispiel:

ifstream variables("variables.ini");

//some code later
//assume line 'x' holds a variable

if(variables.good())
{
   variables.get(x);
}

//or whatever =/

Ich bin ein bisschen zu einem Verlust für das, was hier zu tun.

Edit:. Meine Sprache der Wahl ist C ++

War es hilfreich?

Lösung

Die ersten Fragen, die Sie benötigen zu adressieren sind, wer und das warum. Ihre Optionen auf der wie wird von den folgen.

Also, wer (oder was) werden die Daten zugreifen sein? Wenn es nur das Programm selbst dann können Sie die Daten speichern, wie Sie wollen - Binärdatei, xml, Datenbank, INI-Datei, was auch immer. Wenn jedoch die Daten für den Benutzer leicht zugänglich sein muss, damit sie es vor einem Lauf ändern kann dann eine Textdatei wie eine ini, die leicht bearbeitet werden kann, macht Sinn. Um die Daten in anderen Formaten gespeichert bearbeiten müssen Sie unter Umständen ein völlig eigenständiges Programm schreiben, nur die gespeicherten Parameter zu manipulieren. das macht Sinn in Ihrer Situation vielleicht oder vielleicht auch nicht, aber es wird mehr Arbeit sein.

Wenn Sie den ini Weg zu gehen, dann sind Sie auf dem richtigen Weg. Sie sind nur Textdateien. Ein übliches Format ist Abschnitte zu haben (in der Regel in Klammern), und dann auf Schlüssel / Wert-Paare innerhalb der Abschnitte. Normalerweise Kommentarzeilen mit Semikolon beginnen, eine nette Geste für die Benutzer, die möchten hin und her zwischen den Einstellungen kippen.

So etwas wie folgt aus:

[System]
    datapath = /home/me/data

[Application]
    start_count = 12
;   start_count = 20  //this is a comment

Sie müssen nicht für Ihre Daten zu den einzelnen Linien sorgen. Sie haben soeben durch die Datei Zeile für Zeile lesen. Leere oder Kommentarzeilen geworfen bekommen. Sie nehmen zur Kenntnis, was Abschnitt Sie sind und Sie verarbeiten die Schlüssel / Wert-Paaren.

Es gibt viele Möglichkeiten, um die analysierte Datei in Ihrem Programm zu speichern. Ein einfacher kann man sein, um die Abschnittsnamen und Schlüssel in einen Schlüssel für eine Karte verketten. Der Wert (der Schlüssel / Wert-Paar) würden die Daten für die Karte sein.

So "Systemdatapath" eine Karte Schlüssel sein könnte und sein Wert wäre "/ home / me / data". Wenn Ihr Programm braucht, um die Werte zu verwenden, sie es nur mit Schlüssel suchen.

Das ist die Grundlagen. Schließlich wollen Sie es verschönern. Zum Beispiel Methoden Werte nach Art abzurufen. Z.B. getString (), getInteger (), getFloat (), etc.

Andere Tipps

Sie entscheiden, das Format der INI-Datei Ihrer Anwendung. Ich in der Regel mit XML arbeiten, weil dann können Sie Ihre Informationen von Umfang organisieren, und es gibt bereits eine Reihe von Libs Informationen aus XML-Bäume zu behandeln Speichern und Abrufen.

Edit: für C ++ - http://xerces.apache.org/xerces-c/

Wenn Sie vorhaben, Werte aus den Dateien häufig zu ziehen, und vor allem, wenn Sie (anhalten), um diese Werte aktualisieren müssen, eine Datenbank ist eine gute Option. Es wird Ihnen auch eine gute Leistung geben, wie Sie Ihre Datenmenge wächst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top