Verwalten von Stringdaten
-
- 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
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
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
-
- Beiträge: 6914
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Verwalten von Stringdaten
Das ganze als Ini-Datei abzuspeichern wäre ein Lösung.
Dazu gibt es die fertige Klasse TIniFile in der Unit IniFiles.
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
Mit Java und C/C++ sehe ich rot
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2809
- 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
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.
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
-
- 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
XML ist Dein Freund.Hartkern hat geschrieben:Man muss Zutaten löschen, ändern oder neue Zutaten kreieren können.
Ü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.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2809
- 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
Könntest du noch spezifizieren, warum du aus den Anforderungen des OP zu der Empfehlung XML kommst?Timm Thaler hat geschrieben:XML ist Dein Freund.
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
-
- 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
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.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.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2809
- 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
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)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.
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
-
- 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
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.
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.