Was ist der beste Weg, ich über das Erstellen eines Programms gehen sollten die Informationen in dieser Datei und fügen Sie neue Informationen Informationen in eine Datei zu speichern, bearbeiten

StackOverflow https://stackoverflow.com/questions/704892

Frage

ich bin auf einem kleinen Projekt zu starten, ich versuche zu tun, wo ich ein C ++ Programm speichern Inventardaten in einer Datei (Ich denke, eine .txt tun wird) erstellen

  • • Artikelbeschreibung • Menge an Hand • Großhandelskosten • Retail Kosten • Datum Hinzu Inventar

Ich muss in der Lage sein:

• Hinzufügen neuer Datensätze in der Datei • Zeigen Sie auf einen Eintrag in der Datei • Ändern Sie auf einen Eintrag in der Datei

Gibt es etwas, das ich kenne soll, bevor ich damit anfangen, dass dies viel einfacher und effizienter machen könnte ...

Wie zum Beispiel, sollte ich versuchen, und verwenden XML oder dass zu hart, was sein mit über C ++ zu arbeiten?

Ich habe nie wirklich verstanden, die effizienteste Art und Weise, dies zu tun.

Wie würde ich durch die Datei zu suchen und für Dinge in Klammer oder etwas aus?

EDIT

Die Datengröße sollte nicht zu groß sein. Es ist für die Hausaufgaben Ich denke, man könnte sagen. Ich mag die Struktur der Inhalte in eine Datei Route schreiben, wie würde ich mich über das zu tun?

War es hilfreich?

Lösung

Es gibt viele Ansätze. Ist das für die Hausaufgaben oder für wirkliche Verwendung? Wenn es für die Hausaufgaben ist, gibt es wahrscheinlich einige Einschränkungen auf, was Sie verwenden können.

Ansonsten schlage ich vor, einige eingebettete DBMS wie SQLite . Es gibt auch andere, aber das wird die leistungsfähigste Lösung sein, und auch die einfachste Implementierung hat.

XML ist auch akzeptabel, und viele wiederverwendbare Implementierungen zur Verfügung, aber es beginnt Leistung zu verlieren, wenn Sie in die Tausende von Datensätzen gehen. Das gleiche gilt für JSON. Und man könnte noch debat, die man einfacher -. JSON oder XML

Eine andere Möglichkeit ist ein struct zu erstellen und den Inhalt direkt in die Datei zu schreiben. Erhalten heikel, obwohl, wenn die Datensatzgröße nicht konstant ist. Und wenn das Aufzeichnungsformat ändert, müssen Sie die Datei neu erstellt werden. Sonst könnte diese Lösung eine der besten Performance-weise sein -. Wenn sorgfältig umgesetzt

Andere Tipps

Können Sie uns aufklären, warum Sie nicht über eine Datenbank-Engine für sie verwenden?

Wenn es nur dann für das Lernen .... geben Sie uns bitte eine geschätzte Größe von gespeicherten Daten in dieser Datei und dem Zugriffsmuster (wie viele Benutzer, wie oft sie es tun, etc.)?

Die Herausforderung wird sein, eine effiziente Suche und Änderung Code zu erstellen.

Für die Suche, es geht um Datenstrukturen und Organisation. Für die Änderung ist es, wie Sie Updates in die Datei schreiben würden, ohne es vollständig in dem Speicher zu lesen, es dort zu aktualisieren und dann wieder mit dem Schreiben in die Datei vollständig zurück.

Wenn dies ein Projekt, das tatsächlich verwendet wird, mit dem Potenzial Funktionen im Laufe der Zeit hinzugefügt zu haben, gehen Sie für eine Datenbanklösung von Anfang an, auch wenn es übertrieben scheint. Ich habe vor dieser Straße unten gewesen, kleine Features im Laufe der Zeit hinzugefügt, und bevor Sie es feststellen, dass Sie eine Datenbank implementiert. Schlecht. Beißen Sie die Kugel und eine Datenbank verwenden.

Wenn dies ein Lernübung ist, hängt es von der Menge der Daten, die gespeichert werden sollen. Wenn es klein ist, ist die einfachste Sache zu tun, um die gesamte Datei in den Speicher eingelesen und arbeiten auf ihn dort. Wenn Änderungen vorgenommen werden, schreibt auf der Festplatte die gesamte Datei zurück. Wenn die Daten zu groß ist, das zu tun, ist die nächste beste Sache Größe Aufzeichnungen festgelegt haben. Erstellen eines POD struct, die alle Daten enthält (das heißt, keine Zeiger, stl Behälter, etc). Dann können Sie einzelne Datensätze neu zu schreiben, ohne die gesamte Datei neu zu schreiben benötigt. Wenn beides nicht funktioniert, ist Ihre beste Wette ist eine Datenbanklösung.

Wenn Sie darauf bestehen, es manuell zu tun, schlage ich JSON statt XML.

Bedenken Sie auch SQLite.

Das klingt wie ein perfekter Job für SQLite . Klein, schnell, flexibel und einfach zu bedienen.

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