Verwalten von Stringdaten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Hartkern
Beiträge: 69
Registriert: Sa 5. Dez 2015, 20:03
OS, Lazarus, FPC: Win10 IDE 1.6
CPU-Target: 64Bit
Wohnort: Leipzig

Verwalten von Stringdaten

Beitrag von Hartkern »

Hallo,

ich suche nach einer Möglichkeit, Daten eines Objektes zu speichern.

Aktuell besitzt mein Objekt "Zutaten" 5 Eigenschaften die ich als String speichere. Ich vermute das es irgendwann zig Zutaten werden..

Daher grübel ich gerade wie ich die Objekte "Zutat" speichere..

Mir schwebt vor entweder als lowbudget Lösung alle in eine Stringlist zu packen oder, jedes Objekt einzeln als Stringlist in eine Datei zu speichern.
Man muss Zutaten löschen, ändern oder neue Zutaten kreieren können.

Datenbank wäre vermutlich nen effektiver Ansatz, aber das übersteigt meinen Horizont.

gruß Klausi

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verwalten von Stringdaten

Beitrag von Mathias »

Das ganze als Ini-Datei abzuspeichern wäre ein Lösung.
Dazu gibt es die fertige Klasse TIniFile in der Unit IniFiles.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verwalten von Stringdaten

Beitrag von m.fuchs »

INI-File ist doch eher unbequem. Man müsste für jedes Objekt eine eigene Datei anlegen.

Eine Möglichkeit wäre zum Beispiel die Objekte im JSON-Format zu speichern. Hier ganz gut beschrieben: http://wiki.freepascal.org/Streaming_JSON/de

Datenbank ginge auch, mit Sqlite ist das gar nicht so schwer, ich mache mal schamlos Werbung für einen einfachen Object-Mapper: https://www.ypa-software.de/pages/de/li ... sqlite.php
Wenn du dazu Fragen hast, können wir bestimmt ganz fix ein Beispiel mit deinen Objekten anfertigen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Verwalten von Stringdaten

Beitrag von Timm Thaler »

Hartkern hat geschrieben:Man muss Zutaten löschen, ändern oder neue Zutaten kreieren können.


XML ist Dein Freund.

Übersichtlich auch im Texteditor, leicht zu erweitern und es gibt fertige Libs zum Auslesen und Bearbeiten der Daten.

Wenn die Strings in utf-8 vorliegen, nimm gleich die laz2_DOM, laz2_XMLRead... Libs.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verwalten von Stringdaten

Beitrag von m.fuchs »

Timm Thaler hat geschrieben:XML ist Dein Freund.

Könntest du noch spezifizieren, warum du aus den Anforderungen des OP zu der Empfehlung XML kommst?
Es soll ja nur eine Liste mit Objekten gleichen Typs gespeichert werden, deren Daten nur aus Strings bestehen. Das rechtfertigt die Komplexität von XML nun wirklich nicht.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Verwalten von Stringdaten

Beitrag von Timm Thaler »

m.fuchs hat geschrieben:Es soll ja nur eine Liste mit Objekten gleichen Typs gespeichert werden, deren Daten nur aus Strings bestehen. Das rechtfertigt die Komplexität von XML nun wirklich nicht.


JSON ist letztlich das Gleiche, nur in etwas anderer Syntax. Und ob ich da einen JSON oder einen XML Parser drauf loslasse kommt aufs Gleiche raus.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verwalten von Stringdaten

Beitrag von m.fuchs »

Timm Thaler hat geschrieben:JSON ist letztlich das Gleiche, nur in etwas anderer Syntax. Und ob ich da einen JSON oder einen XML Parser drauf loslasse kommt aufs Gleiche raus.

Naja, ein paar größere Unterschiede gibt es da schon noch. Die Attribute beispielsweise, die bessere Lesbarkeit, geringerer Overhead, etc. (https://de.wikipedia.org/wiki/JavaScrip ... ied_zu_XML)

Leichter zu lesen wäre nur noch YAML, aber dazu kenne ich keine fertige Bibliothek für FPC.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Verwalten von Stringdaten

Beitrag von Timm Thaler »

Ich sach mal, um den Overhead mach ich mir vielleicht bei Übertragung von Messdaten per Funkstecke Gedanken, aber nicht beim Abspeichern in einer Datei. Das war früher mal.

XML hat den Vorteil, dass es einfach erweiterbar ist. Wenn also der Bedarf aufkommt, zusätzlich zu den Zutaten noch den Namen, das Erstelldatum... oder zu jeder Zutat noch eine Menge speichern zu wollen ist das einfach implementierbar. Aber ja, man kann das auch in JSON machen.

Antworten